子元素在jquery中使用父元素注册click事件吗?

前端之家收集整理的这篇文章主要介绍了子元素在jquery中使用父元素注册click事件吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > jquery stop child triggering parent event8个
如果我有一个浮动消息框,我想知道是否在该框中单击段落文本也会在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.f2er.com/jquery/241587.html

猜你在找的jQuery相关文章