javascript - 单击处理程序在同一元素上被调用两次

标签 javascript

我有两个 div 元素,innerouter。我仅以编程方式触发 inner div 上的点击事件一次。但是日志显示事件处理程序在 inner div 上被调用了两次。这是代码。你能帮忙理解为什么会这样吗?代码也托管在 codesandbox

const inner = document.querySelector(".inner");
const outer = document.querySelector(".outer");
    
function clk(event) {
  console.log("click");
  console.log(event.target);
}
    
inner.addEventListener("click", clk);
outer.addEventListener("click", clk);
    
inner.click();
<div class="outer" id="div1">
  <div class="inner" id="div2"></div>
</div>

最佳答案

添加

event.stopPropagation()

到你的clk函数

关于javascript - 单击处理程序在同一元素上被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71885324/

相关文章:

javascript - Sequelize 创建包含现有对象

javascript - 油猴脚本。如何自动单击之间有未知空白量的链接

javascript - JS : + variable is this right?

javascript - 无法在回调函数中调用任何 fineUploader 方法

php - 防止 iframe 窃取

javascript - Chart.js 折线图中的数据无法正确显示

javascript - 事件链接在 Bootstrap 上不起作用

javascript - 使用数组按单词过滤

javascript - VueJS 应用程序将 GET 请求中的数据放入数组中

javascript - 显示并打开引导模式