我有一个 2 div 元素。一个是孩子,一个是父母,例如:
<div id="p">
<div id="c">
</div>
</div>
div 附加了parent
2 个事件click
,dblclick
并且子 div 附加了 1 个事件click
。现在我的问题是当我点击child div
父 div 点击事件时也执行了。我尝试了e.stopPropagation();
但仍然是相同的行为。帮我 ?
我有一个 2 div 元素。一个是孩子,一个是父母,例如:
<div id="p">
<div id="c">
</div>
</div>
div 附加了parent
2 个事件click
,dblclick
并且子 div 附加了 1 个事件click
。现在我的问题是当我点击child div
父 div 点击事件时也执行了。我尝试了e.stopPropagation();
但仍然是相同的行为。帮我 ?
你一定是试错了,因为stopPropagation
应该在这里解决问题。确保在子元素处停止事件的传播:
$("#c").click(function (e) {
e.stopPropagation(); //Will prevent event bubbling to #p
});
这是一个工作示例。
上述情况的唯一例外是,如果您已将事件处理程序与该live
方法绑定(您不应该这样做,因为live
已弃用)。您无法停止事件的传播,live
因为事件处理程序绑定到文档而不是元素,并且事件必须在执行之前一直传播到文档。