当处理程序已经存在并绑定时,JQuery stopPropagation on .live()

2024-03-23

我知道文档中会出现实时通话,这就是我遇到问题的原因。

不幸的是,我正在使用绑定元素的第三方库,并且希望创建一个单击事件不会冒泡到这些元素的情况。

将 .click() 与 eventStopPropogation 结合使用效果很好,但是由于内容的动态性质,我需要使用 live、on、delegate 等... 这是我的问题的一个小提琴。我需要防止单击“内部”div 时触发“外部”单击。我可以not更改“外部”处理程序。

在此先感谢您的帮助!!

http://jsfiddle.net/99zQM/2/ http://jsfiddle.net/99zQM/2/

HTML:

<div id="outer">
    outer
    <div id="inner">
        inner
    </div>
</div>

JavaScript:

$("#outer").bind('click',function(e){
   alert("outer clicked"); 
});

$("#inner").live('click',function(e){
   alert("inner clicked"); 
});

use on委托绑定到outer并打电话e.stopPropagation() in inner单击处理程序..这应该可以解决问题。

尝试这个updated

$("#outer").bind('click',function(e){
  alert("outer clicked"); 
});

$('#outer').on('click',"#inner",function(e){
  e.stopPropagation();
  alert("inner clicked"); 

});

在这里更新了小提琴 http://jsfiddle.net/bipen/99zQM/5/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当处理程序已经存在并绑定时,JQuery stopPropagation on .live() 的相关文章

随机推荐