Ну, у меня есть меню, и там я хочу иметь класс под названием active
, когда он активен, очевидно.IE8 toggleClass не работает должным образом
Чтобы переключить этот класс, я использую функцию jQuery toggle, но он просто активирует его в элементе js. Если я проверю элемент dom, этот класс никогда не будет установлен. Но мне нужен этот класс из-за моих стилей CSS.
Я знаю, что уже есть много тем о toggleClass
JQuery, но они не подходят (по крайней мере, я не мог найти ничего подходящего)
Вот некоторые код:
$('#menu').on('click', '.tab span', function (e) {
e.stopPropagation();
var $tab = $(this).parent('.tab');
$tab.siblings('.tab.active').removeClass('active');
$tab.toggleClass('active');
});
HTML разметка
<div id="menu">
<div class="tab">
<span></span>
</div>
</div>
Его работает во всех браузерах, кроме IE8 Спасибо заранее.
Что не работает по этому поводу? как вы тестируете, что класс не применяется? –
Не проверял эту теорию, но я, похоже, вспоминаю подобную проблему и решаю с чем-то вроде «базового» класса «чередовать/переключать» с моим «активным» классом. Попробуйте что-то подобное, я думаю, что это может помочь. Прошло много времени с тех пор, как я видел эту проблему, но я действительно помню ее, и я клянусь, что я обработал ее чем-то вроде '.toggleClass (« base active »)', где база была сброшена, когда активна добавлена или наоборот. – SpYk3HH
Кроме того, поскольку вы используете «removeClass» так, как вы, у вас нет «реальной необходимости» для «toggleClass» здесь. Вы бы сделали так же, чтобы заменить эту строку на 'addClass'. И строка '$ tab.siblings ('. Tab.active'). RemoveClass ('active');' не собирается удалять активный из себя ... – SpYk3HH