javascript - 父/子单击事件处理( Vanilla JS)

标签 javascript

我一直在寻找 vanilla JS 的答案,如果不引用 jquery 的 stopPropagation,我似乎找不到任何东西。

我有一个“div1”,我已经应用了一个事件监听器,在新窗口中打开一个 URL。我还有一个带有“div1”的“div2”,我也希望能够通过 eventListener 与其进行交互。

但是,正如您可能想象的那样,现在单击 div2 只会激活 div1 的 eventListener。有没有办法确定点击的优先级或适应 div2 位于 div1 中的事实?

Image Representation of Div Structure

最佳答案

使用 stopPropagation 是确保事件不会落到层次结构中的下一个元素的一种方法:

div1.addEventListener('click', function(e) {
    alert('Div1 Clicked Directly!');
});

div2.addEventListener('click', function(e) {
    e.stopPropagation();
    alert('Div2 Clicked!');
});

关于javascript - 父/子单击事件处理( Vanilla JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639196/

相关文章:

javascript - 添加时重复输入

javascript - HTML、JS、CSS 按钮无法正常运行

javascript - 使用 phantom.js 和 node.js 安排 PDF 生成

javascript - 需要检查innerHTML并删除父li

javascript - 多行自动相乘

javascript - 如何从 iframe 内部将脚本元素复制到父级?

php - Select List后查询SQL数据库

php - 如果在 iframe 中查看页面,如何在 Wordpress 中添加正文类?

javascript - 为什么 close() 方法没有关闭我创建的窗口?

javascript - 在 Marionette 布局中使用 jQuery 选项卡