我似乎至少觀察到一個情況,即如果執行過程中出現錯誤,傳遞給jQuery效果函數的回調函數將重複執行。jQuery回調顯然重複失敗?
例如,見this JS Fiddle,具有下面的代碼:
$('#awesome').fadeOut(400,function() {
log('fading out...');
dieInAFire();
});
log
附加任何真實傳遞給它一個div ...但dieInAFire
不存在。然而,只是停止執行,然而,匿名函數似乎一遍又一遍地被調用,正如越來越多的出現在日誌div中的「淡出......」所證明的那樣。
這是預期的行爲?如果是這樣,爲什麼?
驚人的發現取代它... :-)對我來說這不是預期的。 – HBublitz
它看起來像一個jQuery的bug。 – Emil
非常奇怪,看起來它與動畫有關。 AJAX回調沒有這個問題,如果沒有動畫,這個回調也沒問題。如果元素已經具有樣式'display:none;'這個回調被調用一次,那麼IE。同樣的問題也出現在fadeIn()中 – Paulpro