Javascript 如何过滤事件处理程序中的子元素事件?

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

我有引导按钮组。另外,一个基于jQuery的事件处理程序(使用事件委派)根据click事件在相应的.btn上设置/取消设置bootstrap.active类

当我的按钮中有html元素时,就会出现问题。单击按钮的子元素时,将在.btn的子元素上设置.active类

我如何只接收我感兴趣的精确元素的事件

要重现此问题,请单击按钮中的一个数字,然后单击其他按钮中的另一个数字

    <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;
});