我想知道为什么下面的代码不会等待动画在循环中开始下一个动画之前完成。在'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