我想在点击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
最佳答案
为了获得所需的结果,您必须在anchor元素上注册一个事件处理程序,在执行时会阻止事件传播.
$("#myLink").click(function(e) {
e.stopPropagation();
});
为什么这个工作?
事件传播从根元素开始直到目标元素(捕获阶段)和到达目标后,
他们爬回到根元素(冒泡阶段).
目标元素是接收事件的元素.
在冒泡阶段,可以在捕获阶段注册事件监听器.
在这里,我们使用jQuery在冒泡阶段注册事件.
stopPropagation允许阻止通过DOM传播事件.
这是我写的一篇文章,以防你需要更多关于W3C event model的信息.
原文链接:/jquery/428684.html