2013-06-29 166 views
1

新的內容每次都會增加一倍,我怎麼會讓回調函數只觸發一次而不是每個孩子?jquery動畫回調調用一次而不是每個元素

+0

僅供參考,您不必通過'$( '格')兒童()'將jQuery再次,只是連鎖調用:'$ ( 'DIV')。子女()。動畫(...)'。 –

+0

更多副本:http://stackoverflow.com/q/909526/218196,http://stackoverflow.com/q/8790752/218196 –

回答

1

使用.promise.done一起:

從文檔:

.promise()方法返回一個動態生成的承諾,解決一旦某種類型綁定到集合中的所有動作,排隊或不,已經結束。

默認情況下,類型爲「fx」,這表示當所選元素的所有動畫完成時,返回的Promise將被解析。

所以用法是:

$(myElements).animate(...).promise().done(function() { 
    // called only when _all_ of the animations on 
    // "myElements" elements have completed 
}); 
+0

這是一個重複,雖然': - /' –

+0

所以它是,雖然接受的答案關於你提到的第一個問題在這個例子中是最重要的。 – Alnitak

+0

這就是爲什麼我指出使用其他答案。到目前爲止,我發現的所有問題都提到了'.promise()。done'。只是說。我們不需要更多的那些IMO。 –