这是一个愚蠢的问题,但我无法弄明白,说我有两个div:
<div class="one"></div>
<div class="two"></div>
Div one是一个按钮,div是一个盒子。
现在当我点击div one
时,div two
应该是可见的(默认情况下不是)
当我点击div one
时,div two
会再次消失,等等......
这是我的代码:
$(".one").live("click", function(){
state = $(this).attr("state");
if(state == "active"){
$(this).attr("state", "inactive");
$(".two").css("display", "none");
}else{
$(this).attr("state", "active");
$(".two").css("display", "block");
}
});
现在我的问题是,当我点击页面中的任何地方时,我也希望div two
消失,所以这就是我所做的:
$(document).click(function(){
$(".one").attr("state", "inactive");
$(".two").css("display", "none");
});
现在发生的事情可能是单击div后文档上的click事件发生了,它不允许我打开框。
我知道的一个解决方案是检查是否(event.target.className != "one")
,但我真的想避免这种情况,因为在我的真实项目中,我在该按钮中有很多其他元素,所以我需要包含所有这些元素,我想避免这种情况。
答案 0 :(得分:0)
return false;
处理程序的 .live()
。您希望停止事件传播,这是打破实时事件链(已经冒泡)的方法。