2010-04-28 43 views
2

我有一个大的div,和div中的一个小按钮。jQuery:处理背景/容器点击

当div被点击时,我希望它做一些事情。
当按钮被点击时,我希望它做别的事情。

$('#myDiv').click(OnDivClicked); 
$('#myButton').click(OnButtonClicked); 

当前单击按钮时,会触发OnDivClicked和OnButtonClicked。

如何防止点击按钮时OnDivClicked被触发?

在此先感谢。

回答

5

您需要防止点击冒泡使用event.stopPropagation(),像这样:

$('#myButton').click(function(e) { 
    OnButtonClicked(); 
    e.stopPropagation(); 
}); 

默认情况下,许多事件冒泡他们的父母一路DOM根,引起他们的事件处理程序为同一事件键入火...以停止这一点,你只需要停止像上面的代码冒泡行为。如果您不需要执行默认操作,则return false;也会完成此操作。

e.StopPopagation()return false;之间的差别是在说,一个锚更重要的,停止泡沫只会火父母的click处理程序,但按照链接,而return false会做既不

+0

完美!谢谢尼克! – Aximili 2010-04-28 00:24:32