Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击会同时触发两个onclick事件_Javascript_Html_Css_Onclick - Fatal编程技术网

Javascript 单击会同时触发两个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的顶部有一个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=%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。