2013-07-17 4 views
1

Я хочу добавить еще один img вместо plus.svg. Если вы, ребята, знаете способ каким-то образом переключить метод .append(), это было бы здорово. Я хочу изменить CSS, когда вы нажмете на него, а затем измените его снова, в основном.Есть ли способ переключить метод .append() jQuery?

  $(function(){ 
      $("#btw").click(function(){ 
       $("#btwl").slideToggle(300); 
       $(this).append("<style>#btw::before{content: url(minus.svg);width: 16px;eight: 16px;background-size: 16px 16px;background-repeat: no-repeat;vertical-align: middle;padding-right: 10px;}</style>"); 
      }); 
     }); 
+0

что вы имеете в виду 'тумблер методом .append(),' ?? любые примеры – bipen

+1

Вы можете подготовить два класса CSS, а затем использовать addClass и removeClass метод jQuery условно. –

ответ

1

Вы можете достичь того же эффекта, если вы используете toggleClass:

$(this).toggleClass('selected'); 

Тогда в ваша таблица стилей CSS сделает что-то вроде:

.selected::before { 
    content: url(minus.svg); 
    width: 16px; 
    height: 16px; 
    background-size: 16px 16px; 
    background-repeat: no-repeat; 
    vertical-align: middle; 
    padding-right: 10px; 
} 

Источник: http://api.jquery.com/toggleClass/

+0

Но его psuedo (:: before). Будет ли он работать? – Matthew

+0

Да, должно. Какой бы селектор вам ни понадобился, будет работать так же в CSS, как и в вашем примере. – jrthib

1

Вы можете использовать toggleClass.
Поместите нужный стиль под каким-нибудь классом и сделать

$("#btw").click(function(){ 
     $(this).toggleClass("requiredClass"); 
    }); 
1

Используйте toggleClass Метод:

<style style="text/css"> 
    .before::before{ 
     content: url(minus.svg); 
     width: 16px; 
     height: 16px; 
     background-size: 16px 16px; 
     background-repeat: no-repeat; 
     vertical-align: middle; 
     padding-right: 10px; 
    } 
</style> 
<script type="text/javascript"> 
    $(function(){ 
     $("#btw").click(function(){ 
      $("#btwl").slideToggle(300); 
      $(this).toggleClass("before"); 
     }); 
    }); 
</script> 
1

Вы можете удалить CSS, предоставляя идентификатор в стиле

$(function(){ 
    $("#btw").click(function(){ 
     $("#btwl").slideToggle(300); 
     if($('#btwl').is(':hidden')) { 
      $(this).append("<style id='toggle_css'>#btw::before{content: url(minus.svg);width: 16px;eight: 16px;background-size: 16px 16px;background-repeat: no-repeat;vertical-align: middle;padding-right: 10px;}</style>"); 
     } else { 
      $('#toggle_css').remove(); 
     } 
    }); 
}); 
Смежные вопросы