Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery IE8 toggleClass工作不正常_Jquery_Internet Explorer 8_Toggleclass - Fatal编程技术网

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')不会从自身中删除活动。。。