Javascript 如何过滤事件处理程序中的子元素事件?
我有引导按钮组。另外,一个基于jQuery的事件处理程序(使用事件委派)根据click事件在相应的.btn上设置/取消设置bootstrap.active类 当我的按钮中有html元素时,就会出现问题。单击按钮的子元素时,将在.btn的子元素上设置.active类 我如何只接收我感兴趣的精确元素的事件 要重现此问题,请单击按钮中的一个数字,然后单击其他按钮中的另一个数字Javascript 如何过滤事件处理程序中的子元素事件?,javascript,jquery,jquery-events,event-delegation,Javascript,Jquery,Jquery Events,Event Delegation,我有引导按钮组。另外,一个基于jQuery的事件处理程序(使用事件委派)根据click事件在相应的.btn上设置/取消设置bootstrap.active类 当我的按钮中有html元素时,就会出现问题。单击按钮的子元素时,将在.btn的子元素上设置.active类 我如何只接收我感兴趣的精确元素的事件 要重现此问题,请单击按钮中的一个数字,然后单击其他按钮中的另一个数字 <div class="btn-group btn-group-justified pipeline" rol
<div class="btn-group btn-group-justified pipeline" role="group">
<a href="#" class="btn btn-default" role="button">
<h3 class="text-center">767</h3>
<p class="text-muted text-center">Stage1</p>
</a>
</div>
你在找退货假。这将停止传播(与“防止默认值”不同),并防止默认的单击操作。此外,您可以利用此处的链接在两行中完成此操作
$('.btn').on('click',function(){
$(this).addClass('active').siblings(".active").removeClass('active');
return false;
});
将$(e.target)
替换为$(this)
e.target
显示为h3
/p
,而不是按钮
e.target
是触发事件的元素,即您单击的将事件传播到a.btn
的h3
。然后被事件处理程序捕获
这是触发处理程序的元素。非常感谢。如果您还可以指向文档或解释$(this)和e.target@bg101之间的差异,那就太好了。文档中有:this
可能不等于event.target
,如果事件是从子元素冒泡而来的。
$('.btn').on('click',function(){
$(this).addClass('active').siblings(".active").removeClass('active');
return false;
});