仅在内部元素(Javascript)上调用事件侦听器

时间:2017-12-05 00:44:40

标签: javascript function

我在另一个@foreach( $Category->Questions as $Question ) {{ $Question->casedetail( $TestCase->id ) }} @endforeach 内有一个div。两者都附加了事件监听器以在mousedown上运行一个函数 - 将它们称为divouterDivFunction。当我单击内部innerDivFunction时,两个函数都被调用;我只想调用div

怎么做? (Vanilla解决方案比jQuery更受欢迎。)

1 个答案:

答案 0 :(得分:4)

stopPropagation()中使用活动innerDivFunction。这可以防止当前事件在捕获和冒泡阶段进一步传播。

有关详情:Event Propagation

function outerDivFunction(){
  alert('Outer Div');
}

function innerDivFunction(e){
  e.stopPropagation();
  alert('Inner Div');
}
.outer{
  border: 1px solid blue;
}
.inner{
  border: 1px solid red;
  margin: 10px;
}
<div class="outer" onclick="outerDivFunction()">Outer Div
  <div class="inner" onclick="innerDivFunction(event)">Inner Div</div>
</div>