使用twitters Bootstrap我创建了一个带有radiobox行为的按钮组,让用户在不同状态之间进行选择。这个开箱即用。
我在这里安排了一个jsFiddle示例:http://jsfiddle.net/jpxWj/
我尝试(并且想要)的是,当我第二次单击活动按钮时,可以删除按下的状态。
我尝试使用jQuerys removeClass()
从active
类中删除btn
类,但它不起作用。 (我也尝试使用.on()
删除,但这只是保持活动始终隐藏/删除)
答案 0 :(得分:18)
Here you go,在我看来,这是一个非常未知的事件现象。您可以阅读更多相关信息here。
修改强>
简而言之,简单.removeClass
不起作用的原因是因为有多个侦听器,听同一个事件。因此,当click
事件被触发时,正常的.removeClass
将删除该类,但随后Twitter Bootstrap处理程序将再次添加它!为了防止在您之后执行任何其他处理程序,您可以执行e.stopPropagation
。但是,这并不会阻止连接到与您相同元素的处理程序,它只会阻止树上的那些元素。要完全确保在您之后没有执行其他处理程序,您可以使用event.stopImmediatePropagation()
。
答案 1 :(得分:0)
Bootstrap 3更新:
$('body').on('click', '.btn-group .btn.active',function(e){
e.preventDefault();
e.stopImmediatePropagation();
$(this).find('input').removeAttr('checked');
$(this).removeClass('active');
});