防止Javascript中的事件

防止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,外部div和内部div,都是带有click事件的
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
执行此操作)。