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');
}
}
});