Javascript 单击会同时触发两个onclick事件
在div的顶部有一个span。div有一个onclick事件,span也有一个onclick事件。如果单击span,我只希望触发span onclick事件,不幸的是,div的onclick和span的onclick都被触发。如何解决这个问题Javascript 单击会同时触发两个onclick事件,javascript,html,css,onclick,Javascript,Html,Css,Onclick,在div的顶部有一个span。div有一个onclick事件,span也有一个onclick事件。如果单击span,我只希望触发span onclick事件,不幸的是,div的onclick和span的onclick都被触发。如何解决这个问题 <div class="listRow" onclick="document.location = 'index.php?c=rooms&a=displayForm&roomID=3&returnTo=%2Fs
<div class="listRow" onclick="document.location = 'index.php?c=rooms&a=displayForm&roomID=3&returnTo=%2FschoolTool%2Findex.php%3Fc%3Drooms%26a%3DshowList';">
<span class="tools listCell">
<span class="tool" onclick="if(confirm('Vil du virkelig slette dette rommet?')) { document.location = 'index.php?c=rooms&a=delete&roomID=3'; }">
Slett
</span>
</span>
</div>
斯莱特
stopPropagation()方法停止向父元素冒泡事件,防止任何父处理程序收到事件通知
您可以使用event.isPropagationStopped()方法来了解是否(在该事件对象上)调用过此方法
语法:
event.stopPropagation()
有关详细信息:-
你想要的答案很简单,但我会给你更多的建议 首先,您应该将Javascript与HTML分开。内联Javascript通常被认为是不好的 将Javascript移动到单独的文件后,只需将方法放入变量中,并从
onclick
处理程序调用它们。我发了一封信
现在,您要寻找的实际答案是stopPropagation()
方法。它在事件对象上被调用,以阻止它在DOM中冒泡并再次被处理。这是基本的答案,从stopImmediatePropagation()
和preventDefault()
经常弹出的主题中可以找到。因此,我建议阅读相关的jquery文档并查看我写的:)
希望这有助于回答您的问题,使您成为一名更好的开发人员!干杯 好吧,如果你把一个onclick放在一个onclick里面,你会得到2个onclick。,请注意,你应该尽可能避免内联JavaScript。