我想在点击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的信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。