【发布时间】:2016-02-27 00:03:42
【问题描述】:
我正在使用bootstrap radio buttons 并希望允许取消选择无线电组。这可以使用额外的按钮(Fiddle) 来完成。但是,如果在该选项处于活动状态时单击该选项,我想取消选择一个选定的单选选项,而不是一个额外的按钮。
我试过了
$(".btn-group label").on("click", function(e) {
var clickedLabel = $(this);
if ($(clickedLabel).hasClass("active"))
{
// an active option was clicked => deselect it
$(clickedLabel).children("input:radio").prop("checked", false)
$(clickedLabel).removeClass("active");
}
}
)
但似乎存在竞争条件:bootstrap.js 似乎使用单击我使用的标签的事件将单击的标签选项设置为“活动”。如果我引入超时,则“活动”类被成功删除:
$(".btn-group label").on("click", function(e) {
var clickedLabel = $(this);
if ($(clickedLabel).hasClass("active"))
{
setTimeout(function() {
// an active option was clicked => deselect it
$(clickedLabel).children("input:radio").prop("checked", false)
$(clickedLabel).removeClass("active");
}, 500)
}
}
)
如何在不使用超时的情况下成功切换所选选项?谢谢你的帮助。
【问题讨论】:
-
克里斯,这适用于常规单选按钮,不适用于引导按钮(它们在输入周围有标签)。
标签: javascript jquery html twitter-bootstrap