Twitter Bootstrap:删除/切换类似复选框的按钮组的活动状态

使用twitters Bootstrap,我创建了一个带有radiobox行为的按钮组,让用户可以在不同的状态之间进行选择。 这开箱即用。

我在这里安排了一个jsFiddle示例: http : //jsfiddle.net/jpxWj/

我尝试(并且想要)的是当我第二次单击活动按钮时可以删除按下的状态。

我尝试使用jQuerys removeClass removeClass()btn类中删除active类,但它不起作用。 (我也试过用.on()删除但这只是保持活动始终隐藏/删除)

在我看来,这是一个非常未知的事件现象。 你可以在这里阅读更多相关信息。

编辑:

简而言之,简单的.removeClass不起作用的原因是因为有多个侦听器,听同一个事件。 因此,当触发click事件时,正常的.removeClass将删除该类,但随后Twitter Bootstrap处理程序将再次添加它! 为了防止在您之后执行任何其他处理程序,您可以执行e.stopPropagation 。 但是,这并不会阻止连接到与您相同的元素的处理程序,它只会阻止树上的那些元素。 要完全确保在您之后没有执行其他处理程序,您可以使用event.stopImmediatePropagation()

Bootstrap 3更新:

  $('body').on('click', '.btn-group .btn.active',function(e){ e.preventDefault(); e.stopImmediatePropagation(); $(this).find('input').removeAttr('checked'); $(this).removeClass('active'); });