2011-05-20 62 views
0

我正在使用jquery在選擇標記更改時觸發更改事件。我注意到,如果selected =「selected」包含在除第一個選項之外的任何選項中,則該事件無法正常工作。它似乎過早起火。例如,jQuery代碼是:Internet Explorer更改事件發生太快

$('.test').change(function(){ 
    alert('Handler for .change() called.'); 
}); 

和HTML代碼是:

<select class="test"> 
    <option value="option1">option1</option> 
    <option selected="selected" value="option2">option2</option> 
</select> 

此代碼只要選擇欄點擊觸發change事件,而不是當它被改變。我可以通過簡單地從選項中刪除selected =「selected」來解決這個問題,或者將它放在第一個選項中。但我需要選擇較低的選項。請幫忙!!!

+0

這對我在IE9中正常工作(http://jsfiddle.net/8BSSz/)。您看到此行爲的哪個版本的IE? – Matt 2011-05-20 21:55:14

+0

它在IE8和更早版本中。 – Scott 2011-05-20 22:08:54

+0

Matt,我用瀏覽器檢查了你的代碼,它工作正常。我的腳本里還有別的東西可能會導致他們發狂。感謝您的答覆! – Scott 2011-05-20 22:18:49

回答

0

說實話,我找不到使用setTimeout(function(){...},0)的其他解決方案,所以更改事件可能會完成。它解決了我在嘗試獲取檢查元素時的問題。