2

IE8 の jQuery に問題があります (Firefox、Chrome、IE 9 はすべて完璧です)。IE 9未満の場合、jQuery 1.7.1とJS html5shivを使用しています

このコードの問題はチェックボックスです。IE 8 では、何もしないか、マークを付けないか、オプションのチェックを外します。

    <div class="easy-select-box checklist category">
                    <a href="#">All Categories</a>
                    <ul>
                                <li><label><input type="checkbox" onchange="filter();" id="all" value="00"/> All Categories</label></li>
                                <li><label><input type="checkbox" name="cat[]" value="1" id="1" onchange="filter();"/> 1 category</label></li>
                                <li><label><input type="checkbox" name="cat[]" value="2" id="2" onchange="filter();"/> 2 Category</label></li>
                                <li><label><input type="checkbox" name="cat[]" value="3" id="3" onchange="filter();"/> 3 Category</label></li>
                                <li><label><input type="checkbox" name="cat[]" value="4" id="4" onchange="filter();"/> 4 Category</label></li>
                    </ul>
                </div>

jQuery('.checklist li label').click(function(){

if(jQuery(this).parent().is(':first-child')){

        if(jQuery(this).children('input').is(':checked')){

            jQuery('.checklist li').addClass('check');
            jQuery('.checklist > a').text(jQuery(this).text());
            jQuery('.checklist input').attr('checked', true);
        } else {
            jQuery('.checklist > a').text("Select Categories");
            jQuery('.checklist li').removeClass('check');
            //jQuery('.checklist input').attr('checked', false);
            jQuery('.checklist input').removeAttr('checked');
        }

    }else{      

        if(jQuery(this).children('input').is(':checked')){

            jQuery(this).parent().addClass('check');
        } else {
            jQuery('.checklist > a').append("a");
            jQuery(this).parent().removeClass('check');
            jQuery('.checklist li:first-child').removeClass('check');
            //jQuery('.checklist li:first-child input').attr('checked', false);
            jQuery('.checklist li:first-child input').removeAttr('checked');
        }   
    }
});
4

0 に答える 0