当单击Child Div Click时,将调用Parent Div Click函数

时间:2009-06-05 07:08:20

标签: javascript html

单击子Div单击时,将调用父Div单击功能。 如何克服这个问题

我正在使用ASP.Net和C#

<div onclick="callme();">
    <a href='#' onclick="Callme2();">Hi</a>
</div>

当我点击锚标签时,div元素onclick也会被执行。如何克服这个?

3 个答案:

答案 0 :(得分:9)

当然,这取决于浏览器。

在较新的浏览器中,请致电

event.stopPropagation();

关于事件对象。

在较旧的IE中,设置

window.event.cancelBubble = true

Quirks mode处阅读详细信息。

答案 1 :(得分:6)

这是由于事件冒泡造成的。

<div onclick="callme();">
    <a href='#' onclick="return Callme2();">Hi</a>
</div>

确保Callme2()返回false以阻止事件冒泡。

答案 2 :(得分:0)

我测试了它,似乎内部事件首先发射。所以内部事件可以设置某种旗帜。然后外部事件查看该标志:如果已设置,则外部事件清除它并返回。如果没有,它会做它通常做的任何事情。不像已经发布的其他答案那样花哨,但我认为它会起作用并且应该与浏览器无关,前提是所有浏览器首先触发内部事件(我猜他们会根据此处发布的“冒泡”讨论进行)< / p>