如何使用stopPropagation()进行直播活动?

时间:2010-12-07 10:01:24

标签: jquery

HTML CODE:

  <li id="list_id">List_text<img src='image.jpg' id="img_id"></li>

jQuery功能:

$("#list_id").live('click' , function(){
 alert('List is clicked');
});

$("#img_id").live('click' , function(){
 alert('Image is clicked');
});

一旦我点击图像,它的父li函数也会被触发。给我一个解决方案来解决这个问题。我需要触发img事件只有当我点击img元素并且需要在点击li元素时触发li事件。

2 个答案:

答案 0 :(得分:5)

此处需要.stopImmediatePropagation()才能安全,因为事件处理程序处于同一级别(document事件处理程序默认位于$("#list_id").live('click' , function(){ alert('List is clicked'); }); $("#img_id").live('click' , function(e){ e.stopImmediatePropagation(); alert('Image is clicked'); }); ),如下所示:

$("#list_id").live('click' , function(e){
 if(e.isImmediatePropagationStopped()) return;
 alert('List is clicked');
});

$("#img_id").live('click' , function(e){
 e.stopImmediatePropagation();
 alert('Image is clicked');
});

.live()


注意,如果你使用的是jQuery&lt; 1.4.3,为此您还需要检查它是否已使用You can test it here停止,如下所示:

{{1}}

答案 1 :(得分:1)

$("#img_id").live('click' , function(){
 alert('Image is clicked');
return false;
});