【发布时间】:2014-04-02 23:32:30
【问题描述】:
这个脚本使得当你点击一个<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 之后alert(...) 它每次都会发出警报,但仍然不应用课程。
小提琴:http://jsfiddle.net/NQxAC/
<script>
$('.lin_und').click(function() {
$('#big_ul_hide').toggleClass('log_in_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);
</script>
【问题讨论】:
-
为什么
setTimeout里面有点击处理程序。请把它们从废话中取出 -
为什么要在这里嵌套处理程序? (至少在你的 jsFiddle 中......)
-
这就是jsfiddle.net/j08691/NQxAC/2之后的内容吗?
-
@j08691 是的,请发布一个带有描述的答案,我会尝试一下,然后接受。
-
为什么被标记下来了?我符合要求。
标签: javascript jquery toggleclass