为点击事件分隔DOM元素

时间:2013-09-12 20:53:35

标签: javascript html dom

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

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

// Search result data

</article>

正如您所看到的,我已经做到了这一点,您可以点击任意位置并更详细地访问结果

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

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

我该如何排序?

1 个答案:

答案 0 :(得分:2)

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

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

这是通过以下方式完成的:

event.stopPropagation();

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

完整文档:https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation
(IE&lt; 8 fallback:Prototype Event.StopPropagation for IE >= 8