当您点击< 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/
最佳答案
您需要最初停止事件冒泡并将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');
});