我有四个按钮说PASS,FAIL,BLOCKED和ALL(默认情况下,当点击其他按钮时它将被激活默认活动类将被删除)。当单击所有三个按钮(通过,失败,阻止)并将活动类添加到ALL按钮时,我试图删除活动类。但问题是它只从最初点击的两个按钮中删除活动类,并且无法从单击的最新按钮中删除活动类。
我的HTML代码:
<div id="select1" class="btn-group" style="padding-top:5px;" data-toggle="buttons">
<label id="pass" class="same btn btn-primary">
<input type="checkbox" class="ScenarioFilter" value="pass"> Passed
</label>
<label id="fail" class="same btn btn-primary">
<input type="checkbox" class="ScenarioFilter" value="fail"> Failed
</label>
<label id="blocked" class="same btn btn-primary">
<input type="checkbox" class="ScenarioFilter" value="blocked"> Blocked
</label>
<label id="grp1" class="btn btn-primary active">
<input type="checkbox" id="ScenarioDefault" value="default"> All
</label>
</div>
JS:
$("#select1 input:checkbox").change(function() {
ScenarioFilters.length = 0;
var selected = $(this).select().val();
$("#select1 input:checked").each(function() {
if ($(this).val() != 'default') {
ScenarioFilters.push($(this).val());
}
});
$('#ScenarioDefault').removeAttr('disabled');
if (ScenarioFilters.length > 0) {
if (selected == 'default') {
$(this).addClass("active");
$('.same').removeClass("active");
$('.ScenarioFilter').removeAttr('checked');
} else if (selected != 'default') {
if (ScenarioFilters.length > 3) {
$('.same').removeClass("active");
$('.ScenarioFilter').removeAttr('checked');
$(this).removeClass('active'); //Not working
$("#grp1").addClass("active");
$('#ScenarioDefault').attr('checked', 'checked');
} else {
$("#grp1").removeClass("active");
$('#ScenarioDefault').removeAttr('checked');
}
}
} else {
console.log('fkme');
$("#grp1").addClass("active");
$('#ScenarioDefault').attr('checked', 'checked');
$('#ScenarioDefault').attr('disabled', 'disabled');
}
});