javascript - 从单个操作触发多个事件

标签 javascript dom-events

我有一个 onclick 事件附加到我页面中的一个区域,当用户点击它时(自然地)会触发某个 Action 。我最近向该区域添加了一个图像。当用户单击该图像时,我希望发生另一个 Action ,但我不希望发生与整个区域相关的 Action 。但是,我发现这两个事件实际上都是在单击图像时触发的。单击图像时如何抑制区域范围的操作?

最佳答案

您遇到的问题称为事件冒泡。图像的点击事件冒泡到该节点的所有父元素。你想取消冒泡。

执行此操作并适用于所有浏览器的最佳方法是使用 JavaScript 框架。 jQuery有一个非常简单的方法来做到这一点。其他框架也有类似的取消冒泡的机制,我只是碰巧最熟悉jQuery。

例如,你可以在 jQuery 中做这样的事情:

$('img').click(function () {
    // Do some stuff

    return false;// <- Cancels bubbling to parent elements.
});

关于javascript - 从单个操作触发多个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/965689/

相关文章:

类上的 JavaScript 单击事件监听器

javascript - 如何捕获在扩展图标上触发的事件?

javascript - 如何防止浏览器将 touchend 事件明显设为 "remembered"并随后在不适当的时间触发?

javascript - 将文本添加到 D3 轴的外部刻度

javascript - 如何验证 jquery 正则表达式?

javascript - 为什么这个正则表达式匹配不正确的字符?

javascript - 通过 REST 调用将 Sitecore 数据转换为 HTML

Javascript reduce 函数不适用于此对象

javascript - 如何编写允许不可编辑文本框的 JavaScript 函数?

javascript - 如何将 CSS 动画添加到 React 中特定的重新渲染项目?