我想知道爲什麼下面的代碼不會等待動畫在循環中開始下一個動畫之前完成。在'for'循環中使用Jquery promise()等待效果在開始下一個效果之前完成
由於某些原因,循環創建的所有元素都會一次顯示並同時淡入。從代碼中,我期望在循環的第一次迭代完成之前,第一個元素會完成淡入,然後'for'循環的第二次迭代將在下一個元素中淡入淡出,依次類推。
我做不希望在創建凌亂代碼之前使用回調,並且我想使用將使用動態數據的循環 - 動畫的數量會有所不同。
<div id="container"></div>
<script>
var data = [1,2,3,4];
for(var i = 0; i < data.length; i++){
$("#container").append("<h1>"+data[i]+"</h1>").hide().show("fade",2000);
$("#container").promise().done(function(){console.log('sweet');});
}
</script>
我不認爲你可以達到循環。使用Promise鏈和一些帶有計數器的遞歸函數。第一承諾解決退貨第二承諾等 –
對不起,不明白你的意思。你能提供代碼示例嗎?我搜索了互聯網,但找不到任何描述循環和使用可用於jQuery效果的承諾.. – Trevor