参见英文答案 >
jquery stop child triggering parent event8个
如果我有一个浮动消息框,我想知道是否在该框中单击段落文本也会在jQuery中注册点击它的父元素,或者如果我必须为子元素添加点击监听器.
如果我有一个浮动消息框,我想知道是否在该框中单击段落文本也会在jQuery中注册点击它的父元素,或者如果我必须为子元素添加点击监听器.
更新:这是基本布局:
<div id='msgBox'> <p>This is the <span>message</span></p> </div>
现在,如果我点击< p>中的文字或者在< span>点击$(‘#msgBox’)会触发吗?
更新2:我可以停止这种行为吗?
更新3:这是我要走的小提琴:http://jsfiddle.net/MZtbY/ – 现在有没有办法在达到一定水平后停止传播?所以点击< p>没关系,但点击< span>什么都不做? – 有点像$(‘#msgBox:nth-child’).click(function(e){e.stopPropagation();});
解决方法
Here’s an example at jsFiddle
$('#msgBox').click(function(evt){ alert("click on msgBox: "+evt.target); }); // stop bubbling for the span only. $('#msgBox span').click(function(evt) { evt.stopPropagation(); });
请注意,点击#msgBox< div> (这是jsfiddle中的红色框),或者段落文本的第一部分都将触发#msgBox上的事件处理程序;但点击< span>内的文字将不会.这是因为我们已经将一个处理程序直接应用于span,并在该事件上调用stopPropagation()以防止正常的冒泡操作.
更新:here’s an update to your fiddle显示相同的事情.
原文地址:https://www.jb51.cc/jquery/241587.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。