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

432
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 пункта, каждый из которых - выпадающий. По клику на пункт меню появляется выпадающее меню.

739
div multiselect

div multiselect

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

347
Phonegap, JQuery Searchable DropDown Plugin in IOS

Phonegap, JQuery Searchable DropDown Plugin in IOS

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

354