我有一个显示搜索结果的网站。结果显示完整项目的标题信息。每个搜索结果的html如下所示:
<article class="search_result" onclick="location.href='#';" style="cursor: pointer;">
// Search result data
</article>
正如您所看到的,我已经做到了这一点,您可以点击任意位置并更详细地访问结果
但是,在搜索结果中,我还包含了一个执行其他功能的按钮。
我遇到的问题是当您点击按钮时,按钮和搜索结果都会收到点击事件并对其进行操作。如果单击该按钮,我也不希望搜索结果也处理它。
我该如何排序?
答案 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)