1

嗨,

我有一个很长的列表,我决定 2 通过将所有内容列表放在一个选择选项中来缩短它,当您选择某个制造商时,它会显示该制造商的电话号码以防万一。当我在不同的浏览器(Chrome、Firefox、Opera、Safari)中测试它时,当我使用著名的 Internet Explorer(版本 9)时,boom 无法正常工作。当我选择任何选项时,它根本不显示任何内容。

我的以下 html 标记是:

<select id="technical-assit">
                <option value="choose-brand">Choose Manufacturer</option>
                <option value="3COM">3COM</option>
                <option value="3DFX">3DFX</option>
                <option value="ACER">ACER</option>
                <option value="AIRIS">AIRIS</option>
                <option value="AIT">AIT</option>
                <option value="AGFA">AGFA</option>
                <option value="AIRTEL">AIRTEL / VODAFONE</option>
                <option value="AIWA">AIWA</option>
                <option value="ALCATEL">ALCATEL</option>
</select>

<div id="3COM" class="contact-number" style="display:none">91 509 69 00</div>
<div id="3DFX" class="contact-number" style="display:none">900 501 303</div>
<div id="ACER" class="contact-number" style="display:none">902 202 323</div>
<div id="AIRIS" class="contact-number" style="display:none">902 103 444</div>
<div id="AIT" class="contact-number" style="display:none">902 11 66 21</div>
<div id="AGFA" class="contact-number" style="display:none">902 15 25 93</div>
<div id="AIRTEL" class="contact-number" style="display:none">607 123 000</div>
<div id="AIWA" class="contact-number" style="display:none">91 358 11 02</div>
<div id="ALCATEL" class="contact-number" style="display:none">91 330 40 00</div>

只是列表的一小部分。我的java脚本标记是:

<script>

    $(function() {
    $('#technical-assit').change(function(){
        $('.contact-number').hide();
        $('#' + $(this).val()).show();
    });
});

</script>

有任何想法吗 ?!

谢谢

4

1 回答 1

0

原因是 IE 的 change 方法有问题,你可以在这里看到,你也可以在文档中看到 change 方法,它说从 jQuery 1.4 开始,Internet Explorer 中的 change 事件冒泡,与其他现代浏览器中的事件一致.

要呈现这项工作,您应该使用click方法而不是在 IE 中更改,对于其他浏览器,如 mozilla、chrome .... 使用 change 方法。

要一步完成,您可以使用更改并同时单击,如下所示:

<script>

$(function() {
   $('#technical-assit').live("change click", function(){
      $('.contact-number').hide();
      $('#' + $(this).val()).show();
   });
});

此代码使用 .live() 来响应这两个事件

注意:如果你使用 jQuery 1.7+ live()方法被移除,你可以使用on()方法代替

于 2013-06-19T00:59:24.013 回答