停止在 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();
});
如何停止传播点击事件以使浏览器不重定向?
<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();
});