我有一个父元素 DIV,它有子 div 元素。我为父级及其子级有单独的点击实现。
<div id="mainContainer">
<div id="childContainer">
</div>
<div id="childContainer2">
</div>
</div>
$('#mainContainer').click(function () {
console.log('main container');
}).children().click(function () {
console.log('childen');
return false;
});
$('#childContainer2').click(function () {
console.log('child container 2');
});
这工作正常。但如果我点击一个孩子,那么该事件会运行两次,这就是它应该如何工作。我的问题是 - 有没有一种方法可以显式地将事件写入父级,而不会影响子级,以便子级不需要执行两次单击功能?
是的,您可以更改绑定事件的顺序并停止传播使用停止立即传播 http://api.jquery.com/event.stopImmediatePropagation/
考虑这个fiddle http://jsfiddle.net/AHyN5/
$('#childContainer2').click(function (e) {
alert('child container 2');
e.stopImmediatePropagation()
return false;
});
$('#mainContainer').click(function () {
alert('main container');
}).children().click(function (e) {
alert('childen');
return false;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)