说我有这样的设置:
<div>
<a href="http://www.google.com/">hi</a>
</div>
由于某种原因,我必须在div上有一个事件处理程序,它已经调用了preventDefault()。 在Chrome(可能还有其他浏览器)中,这会破坏div中的链接。我再也无法点击它们了,按照链接的唯一方法是右键单击并在新标签页中打开。
我能想到的唯一解决方案是在这个jsfiddle中: http://jsfiddle.net/QB698/
但这个解决方案似乎非常严重。难道没有更好的方法可以解决这个问题,所以我不必将事件添加到可能位于带有preventDefault处理程序的div中的每个链接上吗?
感谢。
答案 0 :(得分:1)
我认为您可以{em>捕获事件的捕获阶段中的点击事件stopPropagation
。然后,您不必将click事件绑定到每个子链接:
document.getElementById("asd").addEventListener("click", function(e) {
e.stopPropagation();
}, true);