jquery – 单击除链接之外的div的Fire事件

前端之家收集整理的这篇文章主要介绍了jquery – 单击除链接之外的div的Fire事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想在点击div时触发一个事件,但如果我点击该div上的特定链接,我不希望触发该事件:

我的JS

$("#myDiv").not("#myLink").click(function () {
    alert("clicked");
});

//Or

$("#myDiv:not(#myLink)".click(function () {
    alert("clicked");
});

$("body").on('click','#myLink',function(e) {
    e.stopPropagation();
});

我的HTML

这是jsfiddle

编辑:其实我的真实代码是“开”方法,我已经尝试过stopPropagation但是在那种情况下不起作用

最佳答案
为了获得所需的结果,您必须在anchor元素上注册一个事件处理程序,在执行时会阻止事件传播.

$("#myLink").click(function(e) {
    e.stopPropagation();
});

为什么这个工作?

事件传播从根元素开始直到目标元素(捕获阶段)和到达目标后,
他们爬回到根元素(冒泡阶段).
目标元素是接收事件的元素.

在冒泡阶段,可以在捕获阶段注册事件监听器.
在这里,我们使用jQuery在冒泡阶段注册事件.

stopPropagation允许阻止通过DOM传播事件.

这是我写的一篇文章,以防你需要更多关于W3C event model的信息.

原文链接:/jquery/428684.html

猜你在找的jQuery相关文章