考虑以下代码:
HTML
<a href="http://www.google.com" target="_blank" id="myLink" class="anyclass">testlink</a>
JAVASCRIPT
$('#myLink').on("mousedown",doMouseDown);
function doMouseDown(e)
{
e.stopImmediatePropagation();
console.log("Mouse down");
return true;
}
这是我的代码的一个非常简化的版本,但问题是完全一样的。简而言之:e.stopImmediatePropagation()
在我的处理程序中使用,我希望当我单击链接时不会将我发送到 Google。我应该只被console.log()
处决。我所有的研究都表明我的想法是正确的,但它仍然同时执行“mousedown”处理程序和链接的默认“click”处理程序(即它在新选项卡中打开 Google)。
我尝试过添加一个e.preventDefault()
作为我的处理程序的第一条指令,我尝试过返回false
,我尝试过在绑定时将我的处理程序定义为一个匿名函数,我尝试过简单地从一个匿名函数调用它,所有这一切都在不同的组合中,没有任何改进。我必须承认我完全没有想法来解决这个问题。你们中的任何人会这么好心地指出我正确的方向吗?任何帮助将不胜感激。
如果你想测试,这里是小提琴