$('#id').change(function() {
if ($('#id option:selected').val() == 'choice1') {
// do stuff
}
else if ($('#id option:selected').val() == 'choice2') {
// do different stuff
}
});
所以這裏發生了什麼是在頁面加載時默認情況下選擇了choice1。當我將下拉菜單更改爲choice2時,第一次沒有任何反應。當我第二次將它改回到choice1時,它實際上讀取上一個選擇(choice2)中的值。所以就像在價值觀背後落後一步,就像它在變化發生之前取得的價值。jQuery .change()返回當前值,而不是發生更改後
任何提示將不勝感激!
非常感謝!
更新:感謝所有,但必須有其他的JS正在使用此網站的其他JS正在進行。我以前曾嘗試過.val(),它的行爲方式與選項完全相同:selected - 有一個迭代延遲,所以它在第一次選擇後開始工作,但後面一次。我以前見過這個問題,但我真的不記得我是如何修復它的。當我這樣做時,我必須回答我自己的帖子。感謝大家的迴應!
這對我在Chrome中正常工作,你是否在這個小提琴中遇到這個問題? http://jsfiddle.net/BdNUA/ – pimvdb
也許我錯了,但我讀的地方,jQuery緩存以前使用選擇器,所以如果$('#id選項:選擇')'先前使用,那麼它可能會拿起緩存值。這只是一個猜測,我會試着檢查事實。 –