javascript - 为点击事件分离 DOM 元素

标签 javascript html dom

我有一个显示搜索结果的网站。结果与完整项目的标题信息一起显示。每个搜索结果的 html 如下所示:

<article class="search_result" onclick="location.href='#';" style="cursor: pointer;">

// Search result data

</article>

如您所见,我已将其设置为您可以单击任意位置并访问更详细的结果

但是,在搜索结果中,我还包含了一个执行其他功能的按钮。

我遇到的问题是,当您单击按钮时,按钮和搜索结果都会收到单击事件并对其进行操作。如果单击按钮,我不希望搜索结果也处理它。

我该如何排序?

最佳答案

默认情况下,JavaScript 事件会在 DOM 中冒泡,因此在子级上触发的事件也会在父级上触发。

为防止这种情况,您需要停止事件的传播。

这是由以下人员完成的:

event.stopPropagation();

请注意,event 通常作为参数传递给您的回调函数。 (意思是,不要使用 onclick="" 属性,以便获得函数回调)

完整文档:https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation
(IE < 8 回退:Prototype Event.StopPropagation for IE >= 8)

关于javascript - 为点击事件分离 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18774143/

相关文章:

html - 在 HTML 中格式化圣经引述和/或圣经引用的最正确方法是什么?

javascript - DOM 操作在 AngularJS 中添加元素

javascript - 如何将 Axios 获取响应映射到数组

javascript - 使用 JavaScript 动态更改页面中的 LESS 变量

javascript - JavaScript 中的桑基图

javascript - 如何使用 CreateSVGRect 在 SVG 文档中创建样式矩形?

html - TinyMCE 编辑器不喜欢被移动

javascript - MERN React/Redux/MongoDB 带身份验证的实体同构样板

jquery - 如何使引导面板可调整大小

html - 使用CSS在悬停时更改图像