小编Lau*_* S.的帖子

stopImmediatePropagation 没有按预期工作

考虑以下代码:

HTML

<a href="http://www.google.com" target="_blank" id="myLink" class="anyclass">testlink</a>
Run Code Online (Sandbox Code Playgroud)

爪哇脚本

$('#myLink').on("mousedown",doMouseDown);

function doMouseDown(e)
{
    e.stopImmediatePropagation();
    console.log("Mouse down");
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码的一个非常简化的版本,但问题是完全一样的。用 2 个词:e.stopImmediatePropagation()在我的处理程序中使用,我希望当我点击链接时我不会被发送到谷歌。我应该只得到console.log()执行。我所有的研究表明我这样认为是正确的,但它仍然同时执行“鼠标按下”处理程序和链接的默认“点击”处理程序(即它在新选项卡中打开谷歌)。

我试过,没有说服力,添加一个e.preventDefault()作为我的处理程序的第一条指令,我试过返回false,我试过在绑定时将我的处理程序定义为匿名函数,我试过简单地从匿名函数调用它,所有这些都以不同的组合方式进行,没有任何改进。我必须承认我完全没有想法来解决这个问题。你们中有人能指出我正确的方向吗?任何帮助将不胜感激。

如果你想测试,这是小提琴

javascript jquery mouseevent

5
推荐指数
1
解决办法
6356
查看次数

标签 统计

javascript ×1

jquery ×1

mouseevent ×1