2014-10-27 49 views
0

我正在構建一個可摺疊列表,當用戶單擊一個項目時,我會摺疊所有其他項目,然後展開所單擊的項目。我想等到所有元素都摺疊起來展開項目,但我不知道該怎麼做。 (對不,這一切都同時發生)等待多個元素的動畫結束?

如何才能等到所有項都崩潰後再運行代碼的其餘部分?

$(".content").slideUp();  

這就是我想:

$(".content").slideUp(function() { 
     alert("done"); 
    }); 

回答

1

您可以使用.promise()方法上元素的集合:

$('.content').promise().then(function() { 
    // all animations are finished 
}); 

jQuery docs

The .promise()方法返回一個動態生成的Promise,一旦綁定到集合 的某個類型的所有操作都已經結束,就會解析爲 。

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