【发布时间】:2014-05-06 18:24:47
【问题描述】:
我正在开发一个遗留 Web 应用程序,我正在逐步将其 ajaxifying 并发现需要停止从内联 onclick 处理程序传播事件。
以此为例:
<a id="inner" onclick="return handleOnclick();" href="#">Some link</a>
除了 onclick 处理程序之外,还有一些使用addEventListener 添加的侦听器。我需要在某些条件下 onclick 处理程序可以停止事件的传播。我试过event.stopPropagation(),但它似乎不起作用。这是一个要测试的jsfiddle:
http://jsfiddle.net/APQk6/985/
有什么想法吗?
【问题讨论】:
-
您必须将事件对象传递给事件处理程序。但真正的问题是 stopPropagation 不会阻止同一元素上的事件处理程序。
-
尝试 event.preventDefault()。 stackoverflow.com/questions/18971284/…
-
@FelixKling 事件对象存在(window.event),可以在jsfiddle中查看。回覆。 “真正的问题是 stopPropagation 不会阻止同一元素上的事件处理程序”,您能提供参考吗?
-
window.event在 Firefox 中不存在。只需查看 MDN 或 quirksmode.org 上的文档, event.stopPropagation 只会阻止事件冒泡。 (我正在打电话,我现在无法提供链接)。 -
@RobertMunn 我已经在尝试了,请参阅 jsfiddle。
标签: javascript dom javascript-events