我有这样的设置:
<div id="container">
<div id="close">Close</div>
</div>
然后在我的jquery中我有这个:
$("#container").live("click",function(){
changeTabs();
});
$("#close").live("click", function(){
closeTabs();
});
问题在于,当您单击关闭div时,它会触发两个事件。我猜这是因为第二个div覆盖了第一个div。那么如何取消或阻止第一个事件被解雇?
答案 0 :(得分:4)
停止将事件冒泡到 父元素,阻止任何父母 处理者被通知 事件
在您的情况下,这可能看起来像
$("#close").live("click", function(evt){
evt.stopPropagation();
closeTabs();
});
答案 1 :(得分:0)
这可能有效:
$("#container:not(#close)").live("click",function(){
changeTabs();
});
$("#close").live("click", function(){
closeTabs();
});
使用not selecto r。
答案 2 :(得分:0)
我不确定你为什么要将div用作关闭点击事件,你可以改用输入按钮吗?
<div id="container">
<input type="button" id="close" value="Close"/>
</div>
$("#container").live("click",function(){
changeTabs();
});
$("#close").live("click", function(){
closeTabs();
return false;
});
答案 3 :(得分:-1)
好的,所以有效的方法是在closeTabs()函数下我确实返回false;而这似乎解决了它