停止在href上传播click事件

时间:2015-06-28 09:35:18

标签: javascript javascript-events href

如何停止点击事件的传播,以便brwoser不会重定向?

<a id="theHref" href="http://stackoverflow.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>

3 个答案:

答案 0 :(得分:4)

首先,你想听&#34;点击&#34;事件,而不是mousedown

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

不确定你需要返回false - 我永远不会记得跨浏览器的细微差别:p return false不会停止Firefox,例如

答案 1 :(得分:0)

尝试使用return false,这是一种不会让你重定向的简单方法

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

请参阅此小提琴Fiddle

答案 2 :(得分:0)

这应该有效:

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