Jquery IE8 toggleClass工作不正常
我有一个菜单,我想有一个叫做Jquery IE8 toggleClass工作不正常,jquery,internet-explorer-8,toggleclass,Jquery,Internet Explorer 8,Toggleclass,我有一个菜单,我想有一个叫做active的类,当它处于活动状态时 为了切换这个类,我使用jquerytoggle函数,但它只是在js元素中激活它。如果我检查dom元素,这个类永远不会被设置。但是我需要这个类,因为我的CSS风格 我知道已经有很多关于toggleClassjQuery的主题,但它们并不适合(至少我找不到任何合适的) 下面是一些代码: $('#menu').on('click', '.tab span', function (e) { e.stopPropagation();
active
的类,当它处于活动状态时
为了切换这个类,我使用jquerytoggle函数,但它只是在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之外,它在所有浏览器中都能工作
提前感谢。试试这个:
$('#menu').on('click', '.tab span', function (e) {
e.stopPropagation();
var $tab = $(this).parent('.tab');
$tab.addClass('active').siblings('.tab').removeClass('active');
});
试试这个:
$('#menu').on('click', '.tab span', function (e) {
e.stopPropagation();
var $tab = $(this).parent('.tab');
// remove active from all tabs
$('#menu .tab').removeClass('active');
// make current tab as active
$tab.addClass('active');
});
有什么不起作用?你是如何测试这个类没有被应用的?我还没有测试过这个理论,但我似乎想起了一个类似的问题,并解决了类似的问题,比如用一个“基类”来“替换/切换”我的“活动”类。试试这样,我“认为”可能会有帮助。我已经很久没有看到这个问题了,但我确实记得它,我发誓我用
.toggleClass(“base-active”)
之类的方法处理它,其中base在添加active时被删除,反之亦然。另外,由于您使用的是“removeClass”,因此您在这里对toggleClass
没有“真正的需要”。您最好将该行替换为addClass
。和行$tab.sides('.tab.active').removeClass('active')代码>不会从自身中删除活动。。。