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

标签 javascript function

我有一个div在另一个里面div 。两者都附加了事件监听器来在 mousedown 上运行函数 - 称它们为 outerDivFunctioninnerDivFunction 。当我点击内部div时,两个函数都被调用;我希望它只调用 innerDivFunction

如何做到这一点? (Vanilla 解决方案优于 jQuery。)

最佳答案

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

了解更多详情: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>

关于javascript - 仅在内部元素上调用事件监听器(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47644329/

相关文章:

r - 在 R 中:将列名作为参数传递,并在 dplyr::mutate() 和 lazyeval::interp() 的函数中使用它

javascript - 一旦 div 结束,使水平滚动停止

javascript - 乘以 JavaScript 变量

javascript - 尝试将来自 node.js http 服务器的文本拆分为单词数组进行响应

android - 如何在 SQLite for android 中加减数字?

c# - 是否可以在类成员函数中使用 switch 语句并获取访问器?

javascript - 您可以使用 getBoundingClientRect 设置元素的大小吗

javascript - 如何禁用表的子元素中的输入

javascript - var functionName = function() 不是函数

perl - 有人可以解释 Perl 中的哈希吗?