2012-02-06 102 views
0

jQuery的延期的从来没有喜欢我,我从来没有完全能够理解他们。我希望在一些延期完成后收到通知。真正的问题是延期的数量每次都不一样。所以,我不能做到这一点:麻烦jQuery的推迟

$.when(d1, d2, d3).done() 

我试图$.when.apply(this, [d1, d2, d3])只是一个完成时立即触发。

另外,我绝对需要一种方法来传递一个延迟数组。这个数组是动态的,每次我的函数执行时都会有不同数量的延迟。

我知道这可能是一个明显的解决方案,但我忘了它。

回答

1

阅读the documentation。它清楚地表明您可以将一个或多个延期对象传递给$.when。另一方面,如果你传递一个不延迟的参数(如你的例子中的数组),那么done函数将立即触发,假设参数是已解析的延迟。

+0

我知道我可以通过他们,但我有一个参数,以预先决定数这样做,所以我可以直接通过他们。我的问题是延期是动态的,不会有预先确定数量的参数。我需要传递一系列延迟数据。 – LordZardeck 2012-02-06 19:19:15

+1

噢,对不起,那么只要执行'$ .when.apply($,[YOUR_DEFFERED_OBJECTS_HERE])' – ori 2012-02-06 19:22:34

+0

我正在使用apply(this)而不是apply($)。谢谢! – LordZardeck 2012-02-06 19:29:38