单击子Div单击时,将调用父Div单击功能。 如何克服这个问题
我正在使用ASP.Net和C#
<div onclick="callme();">
<a href='#' onclick="Callme2();">Hi</a>
</div>
当我点击锚标签时,div元素onclick也会被执行。如何克服这个?
答案 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>