我有引导按钮组。此外,基于jQuery的事件处理程序(使用事件委托),基于click事件在相应的.btn上设置/取消引导.active类。如何过滤掉事件处理程序中的子元素事件?
问题发生在我的按钮里面有html元素时。当您单击按钮的子元素时,.active类将在.btn的子元素上设置。
如何仅接收我感兴趣的精确元素的事件?
http://jsfiddle.net/0nc3wjq4/ 若要重现该问题,请单击按钮中的一个数字,然后单击另一个按钮中的另一个数字。
<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-group").on("click", ".btn", function(e) {
$(this).siblings(".active").removeClass('active'); // previous
$(e.target).addClass('active'); // current
});
非常感谢。如果您还可以指出文档或解释$(this)和e.target @ bg101 – smartnut007
之间的区别,那么这将会很棒。它位于[jQuery.on](http://api.jquery.com/on/)文档中: _注意,如果事件已从后代元素冒泡,则this可能不等于event.target。 – Barmar