使用 twitters Bootstrap,我创建了一个带有单选框行为的按钮组,让用户在不同的状态之间进行选择。这是开箱即用的。
我在这里安排了一个带有示例的 jsFiddle:http: //jsfiddle.net/jpxWj/
我尝试(并且想要)的是,当我第二次单击活动按钮时,可以删除按下状态。
我尝试使用 jQuerys从类removeClass()
中删除active
该类,btn
但它不起作用。(我也尝试过删除,.on()
但这只会使活动始终隐藏/删除)
使用 twitters Bootstrap,我创建了一个带有单选框行为的按钮组,让用户在不同的状态之间进行选择。这是开箱即用的。
我在这里安排了一个带有示例的 jsFiddle:http: //jsfiddle.net/jpxWj/
我尝试(并且想要)的是,当我第二次单击活动按钮时,可以删除按下状态。
我尝试使用 jQuerys从类removeClass()
中删除active
该类,btn
但它不起作用。(我也尝试过删除,.on()
但这只会使活动始终隐藏/删除)
在这里,我认为这是一个未知的事件现象。你可以在这里阅读更多关于它的信息。
编辑:
.removeClass
详细地说,一个简单的不起作用的原因是因为有多个监听器,监听同一个事件。因此,当click
事件被触发时,正常.removeClass
会删除该类,但随后 Twitter Bootstrap 处理程序会再次添加它!为了防止任何其他处理程序在您的处理程序之后执行,您可以执行e.stopPropagation
. 但是,这不会停止附加到与您的相同元素的处理程序,它只会停止树上更远的处理程序。要完全确保在您的处理程序之后没有执行其他处理程序,您可以使用event.stopImmediatePropagation()
.
引导程序 3 更新:
$('body').on('click', '.btn-group .btn.active',function(e){
e.preventDefault();
e.stopImmediatePropagation();
$(this).find('input').removeAttr('checked');
$(this).removeClass('active');
});