2012-07-14 94 views
-1

當我運行多功能不會同時在jQuery的

$("[id^=menuItem]").fadeOut(1000); 

的淡出同時做所有的組件執行動畫。然而,孔我EXECUT一個for循環做的元素別的東西,完成其中我希望通過

var i; 
for(i = 1; i <= 6; i++) 
    $("div#item" + i).delay(i * 1000).fadeIn(1500); 
$("[id^=item]").fadeOut(400); 

淡出他們都在同一時間由於某種原因時,該淡出開始上第二個元素之前的第一個元素,它是在第三個元素之前開始的。它的確產生了非常酷的效果,但這不是我需要在我的項目中實現的效果。

爲什麼會發生?

我懷疑答案是一旦每個組件都完成初始淡入,最終淡出就會開始。在這種情況下,我的問題將重新表達爲如何延遲執行多選的淡出直到某個東西已經完成(即最後的項目已經完成淡入)。

回答

0

它可能與不同組件準備在不同時間進行下一步的事實有關。也許我應該在淡入之後使用回調函數。當然,這會執行一大堆回調,因此需要使用$ .when/.then語法。