Javascript Twitter引导:删除/切换复选框式按钮组的活动状态
通过twitters引导,我创建了一个具有radiobox行为的按钮组,让用户在不同状态之间进行选择。这是我们想象中的开箱即用 我用下面的示例安排了一个JSFIDLE: 我尝试(并且想要)的是,当我第二次单击活动按钮时,按下的状态可以被删除 我尝试使用jQuerysJavascript Twitter引导:删除/切换复选框式按钮组的活动状态,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,通过twitters引导,我创建了一个具有radiobox行为的按钮组,让用户在不同状态之间进行选择。这是我们想象中的开箱即用 我用下面的示例安排了一个JSFIDLE: 我尝试(并且想要)的是,当我第二次单击活动按钮时,按下的状态可以被删除 我尝试使用jQuerysremoveClass()从btn类中删除active类,但它不起作用。(我还尝试使用.on()删除,但这只是保持活动始终隐藏/删除),在我看来,这是一个相当未知的事件现象。你可以阅读更多关于它的内容 编辑: 对ellaborate来
removeClass()
从btn
类中删除active
类,但它不起作用。(我还尝试使用.on()
删除,但这只是保持活动始终隐藏/删除),在我看来,这是一个相当未知的事件现象。你可以阅读更多关于它的内容
编辑:
对ellaborate来说,一个简单的.removeClass
不起作用的原因是,有多个侦听器在侦听同一事件。因此,当触发click
事件时,一个普通的.removeClass
会删除该类,但是Twitter引导处理程序会再次添加它!为了防止在您的处理程序之后执行任何其他处理程序,您可以执行e.stopPropagation
。但是,这并不会阻止附加到与您的元素相同的元素的处理程序,它只会阻止树上更远的处理程序。要完全确保在您的处理程序之后不会执行其他处理程序,您可以使用。引导程序3更新:
$('body').on('click', '.btn-group .btn.active',function(e){
e.preventDefault();
e.stopImmediatePropagation();
$(this).find('input').removeAttr('checked');
$(this).removeClass('active');
});
这太棒了-非常感谢!我确实尝试了
event.preventDefault()
,但没有成功<代码>事件。stopImmediatePropagation()按预期工作。我更新了JSFIDLE以缩小范围:再次感谢您的提示和帮助!没问题,我补充了一些说明,我想这可能会有帮助。嘿,它不起作用-可能是它在Bootstrap3中不起作用?@Dejell,我必须组合e.preventDefault()代码>和e.停止即时复制()代码>以使其在引导程序3中正常工作,如下所述代码>为我工作。