2013-06-19 59 views
0

海蘭,選擇選項顯示/隱藏IE9問題

我有一個長長的清單,我決定2長話短說通過投入選擇選項的所有內容列表,當你選擇一個特定的生產廠家就說明手機該廠商的編號。當我在不同的瀏覽器(Chrome,Firefox,Opera,Safari)中測試它時,當我到達着名的Internet Explorer(版本9)時,繁榮不起作用。當我選擇任何選項時,它根本不顯示任何內容。

我下面的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> 

有什麼想法?

謝謝

+0

你能否確認'change'處理程序是否被調用? –

+0

你是什麼意思?我選擇的任何選項都未顯示。 我做了一個小例子 - http://jsfiddle.net/Machy/48EtT/ – mstroiu

+0

我的意思是,如果你把一個警告stmt在'change'處理程序中是否出現在IE9中 –

回答

0

的原因是IE有變化的方法有些問題,你可以看到,你也可以看到change method in documentation,它說對於jQuery 1.4,變化事件在Internet Explorer中的氣泡,行爲與其他現代瀏覽器中的事件保持一致。

來呈現這項工作,你應該使用點擊方法,而不是改變IE瀏覽器,以及其他的瀏覽器,如Mozilla,鉻....使用變化的方法。

做到這一步,你可以使用變化和點擊,同時這樣的:

<script> 

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

該代碼使用.live()來響應這兩個事件

說明:如果您使用jQuery 1.7+ live()方法被刪除,您可以使用()方法代替