[英].stopPropagation() and bubbling - can someone explain it to me?
我有一个愚蠢的问题。 有人可以解释一下,为什么事件仍然在.outer
上.outer
吗? 即使当我设置了.stopPropagation()
。 我想我不正确理解这个问题。 当我单击.inner
,事件不应起泡至.outer
HTML:
<div class="outer">asdsad
<div class="inner">asdadsasd</div>
</div>
JavaScript的:
$('.outer').on('click', function(e) {
e.stopPropagation();
$('.inner').toggleClass('hidden');
})
您需要使用:
$('.inner').on('click', function (e) {
e.stopPropagation();
})
$('.outer').on('click', function (e) {
$('.inner').toggleClass('hidden');
})
因为e.stopPropagation()防止事件冒泡 ,而不是在DOM树下
如果要处理.inner的单击与.outer的单击不同,则应具有两个事件处理程序。 然后,您可以在.inner click处理程序中防止事件冒泡,因此单击.inner不会触发.outer上的click事件处理程序。
$('.inner').on('click', function(e) {
...
e.stopPropagation();
});
$('.outer').on('click', function(e) {
...
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.