jquery停止活动冒泡

时间:2011-04-12 08:27:48

标签: jquery

我有这段代码

 var input = $("form input[name='name'].dhxlist_txt_textarea");

 $(input).live('click', function () {

       ShowLookupGrid();
 });

然后我在第一次执行之前推出了第二个实时绑定

  $('#Id').live('click', function () {

       return false;
 });

但是返回虚假陈述并没有停止将事件冒泡到第二个绑定。

3 个答案:

答案 0 :(得分:1)

这不是事件冒泡,而是将处理程序两次附加到同一个元素(一个通过id选择器,另一个通过元素选择器)。

答案 1 :(得分:1)

这应该停止在该元素上触发的任何其他类型的事件,只要它是第一个运行的事件处理程序。

$('#Id').live('click', function (event) {
   event.stopImmediatePropagation()
});

JSFiddle Example

答案 2 :(得分:0)

here写得很清楚

  

由于.live()方法处理   事件一旦传播到   文档的顶部,它不是   可以阻止直播传播   事件

解决.live()事件传播问题。 动态创建的节点在父节点收到之后才会收到该事件。 这将导致funkyness和stopPropagation和preventDefault将无法解决此问题。 修复:添加行

if(event.target != this){
return true;
}

到父节点事件处理程序的顶部。这将在事件实际发送到子节点时停止触发父事件,并且(与return false不同)将事件传播到目标节点。