jQuery:处理后台/容器点击

Axi*_*ili 2 jquery

我有一个大div,div里面有一个小按钮.

单击div时,我希望它能够执行某些操作.
单击按钮时,我希望它执行其他操作.

$('#myDiv').click(OnDivClicked);
$('#myButton').click(OnButtonClicked);
Run Code Online (Sandbox Code Playgroud)

目前,当单击该按钮时,将触发OnDivClicked和OnButtonClicked.

如何在单击按钮时阻止OnDivClicked被触发?

提前致谢.

Nic*_*ver 5

你需要防止点击冒泡event.stopPropagation(),如下所示:

$('#myButton').click(function(e) {
  OnButtonClicked();
  e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

默认情况下,许多事件会一直冒泡到他们的父母一直到DOM根目录,导致他们的事件处理程序触发相同的事件类型...为了阻止这种情况你只需要像上面的代码那样停止冒泡行为.如果您不需要执行默认操作,return false;也将完成此操作.

之间的差异e.StopPopagation()return false;会中说锚更重要的,停止泡沫只会火家长的click处理程序,但按照链接,而return false会做既不.