我有一个大div,而div里面有一个小按钮。
点击div后,我希望它能够做点什么 单击该按钮时,我希望它能够执行其他操作。
$('#myDiv').click(OnDivClicked);
$('#myButton').click(OnButtonClicked);
目前,当点击该按钮时,会触发OnDivClicked和OnButtonClicked。
如何在单击按钮时阻止OnDivClicked被触发?
提前致谢。
答案 0 :(得分:5)
您需要使用event.stopPropagation()
阻止点击冒泡,如下所示:
$('#myButton').click(function(e) {
OnButtonClicked();
e.stopPropagation();
});
默认情况下,很多事件会一直冒泡到他们的父母一直到DOM根目录,导致他们的事件处理程序触发相同的事件类型......要停止这一点,你只需要像上面的代码那样停止冒泡行为。如果您不需要执行默认操作,return false;
也将完成此操作。
e.StopPopagation()
和return false;
之间的差异更重要的是说锚点,停止气泡只会不触发父级click
处理程序但< strong>会关注该链接,而return false
则 。