0

使用 jQuery 为网站创建了一个复选框功能,这些功能适用于所有其他浏览器,如 Chrome、Firefox、Safari、Opera 等。但它不适用于 IE 所有版本。这是我的代码:

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

    <ul id="filters" style="list-style:none; margin-top:75px; line-height:30px; ">

    <li>

        <input type="checkbox" value="outdoor" id="outdoor" />

        <label for="filter-category">Outdoor</label>

    </li>

    <li>

        <input type="checkbox" value="remote_monitor" id="remote_monitor" />

        <label for="filter-category">Remote Monitor</label>

    </li>


     <li>

        <input type="checkbox" value="battery" id="battery" />

        <label for="filter-category">Battery Operated</label>

    </li>

</ul>
<div style="width:850px; height:148px; clear:both; margin-top:80px;">

<div  class="category outdoor " style=" float:left;  ">Rocco</div>

<div  class="category remote_monitor camera" style="float:left;margin-top:-2px; margin-left:10px;">Borocco</div>

<div  class="category battery" style="float:left; margin-top:-2px;margin-left:10px;">Sylva</div>

<div  class="category battery outdoor " style="float:left; margin-top:-2px;margin-left:10px;">Novesto</div>

<script>
$('input').change (function() {

        var selector = $('input:checkbox').map(function(){ 

            return this.checked ? '.' + this.id : ''; 


        }).get().join('');


        console.log(selector);  



        var all = $('div[class^="category"]');

        if(selector.length)

          all.hide().filter(selector).show()

        else all.hide();

    });
</script>

任何人都可以帮忙!

4

2 回答 2

1

console.log()在打开开发工具窗口之前无法在 IE 中工作。

console.log()对此的简短回答是,除非您正在积极测试,否则不要在您的代码中使用。如果您正在测试,无论如何您都将打开开发工具,因此代码将正常工作。如果您不进行测试,请删除console.log(); 它毫无用处。

更详细的答案可以在这里找到:为什么 JavaScript 只有在 IE 中打开开发者工具一次后才能工作?

于 2013-03-26T15:11:29.110 回答
0

您的代码在 Internet Explorer 中运行良好。我相信,就像评论中已经指出的那样 - 您没有在 Internet Explorer 中打开控制台(f12)。您需要打开开发人员工具才能使console.log工作 - 否则会导致错误(并且您的 javascript 的执行将停止)

问题之一:

console.log(selector);  

你的代码

于 2013-03-26T15:12:57.767 回答