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

时间:2012-07-20 15:48:53

标签: javascript jquery twitter-bootstrap

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

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

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

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

2 个答案:

答案 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');
    });