[英]Javascript/Jquery Single event target delegation
我意识到event.target冗余将来在与下一个级别的另一个事件绑定时可能会导致很多问题。
例如,当我在另一个元素内有一个Div元素时。
<div id='div1'>
<div id='div2>
</div>
</div>
我使用以下Jquery代码来绑定事件。
$('div').bind('click', function(event){
alert(event.target.id)
}
有两个警报框,而不是一个。 我了解为什么这样的概念,因为我要点击的是2个div。
当然,更深层次的问题是,当我尝试将此事件之后的事件与event.target相应地绑定时,它绑定x2等等。
是否有可能摆脱外部div上的事件绑定而仅捕获内部的事件。
提前致谢。
您可以使用event.stopPropgation()
阻止事件冒泡,如下所示:
$('div').bind('click', function(event){
alert(event.target.id);
event.stopPropagation();
});
您可以在这里尝试一下 。 这将“捕获”对获得它的第一个<div>
的click
,并且不会让它传播给任何父母。
我认为您只需要在绑定调用中选择内部div:
$('div:eq(0)').bind('click', function(event){
alert(event.target.id)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.