防止Javascript中的事件
我有两个div,外部div和内部div,都是带有click事件的防止Javascript中的事件,javascript,html,events,Javascript,Html,Events,我有两个div,外部div和内部div,都是带有click事件的div。 每当我在Javascript中单击内部div时,我想阻止外部div的事件处理程序 function funOne() { //event.stopPropagation(); alert('Outer Div') } function funTwo() { //event.stopPropagation(); alert('Inner Div') } 这是我的Javascript function
div
。
每当我在Javascript中单击内部div时,我想阻止外部div的事件处理程序
function funOne()
{
//event.stopPropagation();
alert('Outer Div')
}
function funTwo()
{
//event.stopPropagation();
alert('Inner Div')
}
这是我的Javascript
function funOne()
{
//event.stopPropagation();
alert('Outer Div')
}
function funTwo()
{
//event.stopPropagation();
alert('Inner Div')
}
下面是使用的停止从子div到父div的传播,但是您的函数缺少事件对象
function funOne(e)
{
e.stopPropagation();
alert('Outer Div')
}
function funTwo(e)
{
e.stopPropagation();
alert('Inner Div')
}
调用函数时还需要传递事件:
<div class="first" onclick="funOne(event)">
<div class="second" onclick="funTwo(event)"></div>
</div>
请注意,
stopPropagation
仅适用于子/父情况。如果一个div仅仅出现在另一个div中,停止播放
不起任何作用。在此处检查您错过的已定义事件
功能funOne(e)
{
e、 停止传播();
警报(“外部分区”)
}
功能二(e)
{
e、 停止传播();
警报('内部分区')
}
.first{宽度:600px;高度:600px;背景:黄色}
.second{宽度:100px;高度:100px;背景:橙色;位置:相对;顶部:50%;左侧:50%;左侧边距:-50px;顶部边距:-50px}
更新了您的小提琴,请查看:
<div class="second" onclick="funTwo(event)"></div>
function funTwo(event)
{
event.stopPropagation();
alert('Inner Div')
}
功能二(事件)
{
event.stopPropagation();
警报('内部分区')
}
函数funOne(e)
{
e、 停止传播();
警报(“外部分区”)
}
功能二(e)
{
e、 停止传播();
警报('内部分区')
}
您需要像onclick=“funOne(event);”和onclick=“funTwo(event);”那样调用这些函数。事件在哪里?event.stopPropagation()这对您不起作用吗?检查这里。它对我有用。IE和Chrome。
e
将是未定义的
@dfsq为什么这样认为?@Xufox OP提供了一个演示,它很容易测试。@Xufox,因为根据问题中的JSFIDLE,调用函数时没有参数。@Juhana事件处理程序总是将事件对象作为第一个参数(如果使用addEventListener
执行此操作)。