9

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

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

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

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

4

2 回答 2

18

在这里,我认为这是一个未知的事件现象。你可以在这里阅读更多关于它的信息。

编辑:

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

于 2012-07-20T16:02:06.700 回答
0

引导程序 3 更新:

    $('body').on('click', '.btn-group .btn.active',function(e){
       e.preventDefault();
       e.stopImmediatePropagation();
       $(this).find('input').removeAttr('checked');
       $(this).removeClass('active');
    });
于 2016-12-19T08:16:15.607 回答