javascript – jquery toggleClass只能运行一次

前端之家收集整理的这篇文章主要介绍了javascript – jquery toggleClass只能运行一次前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

当您点击< div>时,此脚本就是如此.另一个< div>通过将类log_in_Box_dd添加到#big_ul_hide来显示.一旦#big_ul_hide拥有该类,单击任意位置(#big_ul_hide除外将删除该类,从而隐藏它.
因此,您单击以查看弹出式div,然后单击任何位置,但该div应隐藏它.

这一切都有效,但只有一次.之后,它变得非常奇怪.
添加然后删除后,
检查元素将读取< div id =“big_ul_hide”class =“”>.我不能让课程重新添加.

添加了setTimeout函数,因此在单击.lin_und时不会立即删除该类.

那么,为什么不让我重新加入课程呢?如果我在.toggleclass之后发出警报(…),它每次都会发出警报,但仍然没有应用该类.

小提琴:http://jsfiddle.net/NQxAC/

Box_dd');
});
setTimeout(function() {      
    $('html').click(function() {
        if($('#big_ul_hide').hasClass('log_in_Box_dd')) {
            $('#big_ul_hide').removeClass('log_in_Box_dd');
        }
    });
    $('#big_ul_hide').click(function(event) {
        event.stopPropagation();
    });
},2000);
最佳答案
您需要最初停止事件冒泡并将html上的click事件处理程序从内部单击处理程序移出,以便它存在一个它自己(否则您将重复绑定click事件).尝试使用:

$('.lin_und').click(function (e) {
    e.stopPropagation();
    $('#big_ul_hide').toggleClass('log_in_Box_dd');
    $('#big_ul_hide').click(function (event) {
        event.stopPropagation();
    });
});
$('html').click(function () {
    $('#big_ul_hide').removeClass('log_in_Box_dd');
});

jsFiddle example

猜你在找的jQuery相关文章