繁体   English   中英

链接在具有带有preventDefault的事件处理程序的元素内不起作用

[英]Links wont work inside element that have an event handler with preventDefault

说我有这样的设置:

<div>
    <a href="http://www.google.com/">hi</a>
</div>

由于某种原因,我必须在div上有一个调用了preventDefault()的事件处理程序。 在Chrome(可能还有其他浏览器)中,这会断开该div中的链接。 我再也不能左键单击它们,唯一的链接链接方法是右键单击并在新选项卡中打开。

我能想到的唯一解决方案是在此jsfiddle中: http : //jsfiddle.net/QB698/

但是这种解决方案似乎太过分了。 有没有更好的方法来解决这个问题,所以我不必向可能在div中带有preventDefault处理程序的每个单个链接中添加事件?

谢谢。

我认为您可以在事件捕获阶段stopPropagation click事件的传播 然后,您不必将click事件绑定到每个子链接:

document.getElementById("asd").addEventListener("click", function(e) {
    e.stopPropagation();
}, true);

演示: http//jsfiddle.net/QB698/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM