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

Dan*_*Dan 6 jquery

如果我有一个浮动消息框,我想知道是否在该框中单击段落文本也会在jQuery中注册点击它的父元素,或者如果我必须为子元素添加点击监听器.

更新:这是基本布局:

<div id='msgbox'>
<p>This is the <span>message</span></p>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,如果我单击<p>或在<span>遗嘱中的文本,它仍然会触发点击$('#msgbox')?

更新2:我可以停止这种行为吗?

更新3:这是我要走的小提琴:http://jsfiddle.net/MZtbY/ - 现在是否有办法在达到一定水平后停止传播?所以点击它<p>会没问题,但点击它<span>会什么都不做? - 有点像$('#msgbox :nth-child').click(function(e) {e.stopPropagation();});

Lee*_*Lee 5

这是jsFiddle的一个例子

$('#msgbox').click(function(evt){ 
   alert("click on msgbox: "+evt.target); 
});

// stop bubbling for the span only.
$('#msgbox span').click(function(evt) { 
   evt.stopPropagation(); 
});
Run Code Online (Sandbox Code Playgroud)

请注意,单击#msgbox <div>(这是jsFiddle 中的红色框)或段落文本的第一部分都将触发#msgbox上的事件处理程序; 但点击里面的文字<span>不会.这是因为我们已经将一个处理程序直接应用于span,并调用stopPropagation()该事件以防止正常的冒泡操作.


更新:这里是你的小提琴的更新,显示相同的事情.