Задать для :before стиль через jquery

506
24 ноября 2016, 10:02

Есть ли способ задать в скрипте для :before у кнопки с классом .btn-expand стиль transform:rotate(360deg); ? Пробовала просто так сделать, но не работает..

$('.btn-expand').live('click', function(event) {
     $(this).css("transform", "rotate(360deg)");
});

Или же какой есть другой выход для этого, раз таким способом сделать невозможно

Вот код целиком ->>> https://jsfiddle.net/pdgeatbs/

Answer 1

Сделать нужно так:

1) добавляете класс при клике для родительского элемента

2) через css делаете нужные вещи например так:

$('.btn-expand').live('click', function(event) {
     $(this).addClass("active");
});
.btn-expand.active:before {
transform :rotate(360deg)
}
Answer 2

Вы не можете манипулировать :before, потому что псевдоэлементы недоступны из JavaScript. Но вы можете добавить новый класс с :before:

CSS:

.btn-expand.changed:after { 
   transform :rotate(360deg)
}

JS:

$('.btn-expand').live('click', function(event) {
     $(this).toggleClass('changed');
});
READ ALSO
Закрывать выпадающее меню при клике на соседний пункт меню

Закрывать выпадающее меню при клике на соседний пункт меню

Есть менюшка на 3 пункта, каждый из которых - выпадающий. По клику на пункт меню появляется выпадающее меню.

810
div multiselect

div multiselect

Здравствуйте!.

414
Phonegap, JQuery Searchable DropDown Plugin in IOS

Phonegap, JQuery Searchable DropDown Plugin in IOS

Доброе время суток !.

411