这里是一个例子
HTML:
<a href="#">Click me!</a><div></div>JavaScript的:function getSomeDeferredStuff() { var deferreds = []; var i = 1; for (i = 1; i <= 10; i++) { var count = i; deferreds.push( $.post('/echo/html/', { html: "<p>Task #" + count + " complete.", delay: count }).success(function(data) { $("div").append(data); })); } return deferreds;}$(function() { $("a").click(function() { var deferreds = getSomeDeferredStuff(); $.when(deferreds).done(function() { $("div").append("<p>All done!</p>"); }); });});我想要“全部完成!” 在所有延迟任务完成后$.when()出现,但似乎不知道如何处理延迟对象数组。“全做完了!” 首先发生,因为该数组不是一个Deferred对象,所以jQuery继续前进,并假设它刚刚完成。
我知道可以将对象传递到函数中,$.when(deferred1, deferred2, ..., deferredX)但是在我试图解决的实际问题中,有多少Deferred对象将被执行。
相似问题