2013-09-26 83 views
4

我在我的頁面上有一個選擇框,它在除IE以外的每個瀏覽器中都能很好地工作。我已經在8和9測試過了,而且我有同樣的問題。當我點擊一個選項時,.change()事件觸發,完全像它應該那樣,但是選項不會消失,直到我再次單擊(其中不是觸發點擊事件,奇怪),或單擊選擇框。這對我來說沒有問題,因爲我使用chrome,但是我有相當一部分用戶使用IE8。爲什麼我必須在IE中點擊兩次selectbox選項才能消失?

這裏的.change()函數:

$('#configEquipDesc').change(function() { 
      alert($(this).val()); 
      if ($(this).val() != 'unselected') { 
       ajaxGetConfig($(this).val()); 
      } 
     }); 

這裏有一個選擇的HTML。

<select name="configEquipDesc" id="configEquipDesc" data-native-menu="false" data-inline="true" class="configMenuEquip"> 
    <option value="unselected" data-placeholder="true">Inspection</option> 
</select> 

使用ajax添加更多選項,並且所有功能都完美無缺。

+0

您是否嘗試刪除警報? – adeneo

+0

哈哈,是的,我只是爲了看看.change()事件何時開始發出警報。 –

回答

0

如果這是一個動態創建的selectbox,我懷疑它是,您需要使用delagation。嘗試更改您的jQuery到這:

$('body').on('change','#configEquipDesc', function() { 
    ajaxGetConfig($('option:selected', this).val()); 
}); 

並查看是否可以解決您的問題。

編輯 - 這是selected option,你試圖得到的價值,正確嗎?不是選擇語句本身。所以,這裏有一個小竅門,只抓住選中的選項並將其發送到您的ajaxGetConfig()功能!

+0

我現在就試試這個,但是它的價值在於它不是一個動態創建的選擇框。這些選項是動態創建的,但選擇框是靜態的。 –

+0

此外,這沒有奏效,但謝謝你的建議。我喜歡它如何讓代碼看起來,所以我現在要保持這種狀態。 –

+0

新的選擇器語句非常棒,並且非常感謝您讓我知道它,但是仍然沒有解決我需要點擊兩次,哈哈 –

相關問題