停止在 href 上传播点击事件

Stop propagation of click event on href

如何停止传播点击事件以使浏览器不重定向?

<a id="theHref" href="http://whosebug.com/">SO</a>
<script>
    document.getElementById("theHref").addEventListener("mousedown", function(event) {
        console.log("href clicked, lets try to stop event propagation");
        event.stopPropagation();
        event.preventDefault();
        return false;
    });
</script>

首先,您想监听 "click" 事件,而不是 mousedown

document.getElementById("theHref").addEventListener("click", function(event) {
    console.log("href clicked, lets try to stop event propagation");
    event.preventDefault();
    return false;
});

不确定您是否需要 return false - 我永远记不起这样的跨浏览器细微差别 :p return false 不会阻止 Firefox,例如

只需尝试使用 return false,这是不会让您重定向的简单方法

<script>
$(function(){   
$("#theHref").click(function(){
  return false;
});
});
</script>

参考这个fiddleFiddle

这应该有效:

document.getElementById("theHref").addEventListener("click", function(event) {
    console.log("href clicked, lets try to stop event propagation");
    event.preventDefault();
});