我有一个元素#foo
它上面有点击事件。元素 #foo
位于元素 #bar
中,该元素上也有单击事件。
<div id="bar">
<div id="foo" />
</div>
单击#foo
时,将调用#bar
事件并忽略#foo
事件。这就是我现在想要的。
我正在寻找一种方法#foo
元素中删除所有点击事件,除了我刚刚设置的事件和 #foo
在父级上的所有事件。
编辑:这是jsFiddle演示。我希望在第一个事件之前调用第二个事件。
编辑#2:这是我的代码,其中包含您的建议。不行。
如果你在foo上有一个点击事件,并且你不希望它冒泡,你可以执行以下操作:
$("#foo").on('click', function(e){
e.preventDefault();
e.stopPropagation(); //this line will stop the click bubbling up the tree.
});
使用 stopPropagation 函数,请参见示例:
$("#foo").click(function(e) {
e.stopPropagation();
})
试试这个
$('#foo').click(function(e){
e.preventDefault();
e.stopPropagation();
$('#bar').trigger('click');
});