如何从当前元素

时间:2018-05-01 13:30:30

标签: jquery html

我有四个按钮说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');
    }

});

0 个答案:

没有答案