为每个元素调用jQuery延续一次而不是一次

时间:2016-12-23 15:23:46

标签: javascript jquery

大多数jQuery方法都有以下形式:

$("div.foo").fadeOut(function() { alert("One foo has been hidden."); });

其中$("div.foo").fadeOut(... some magic here ... function() { alert("All foos have been hidden."); }); session.flush(); 完成后每个元素执行一次的延续。例如,

pragmaDirective : 'pragma' Identifier .*? ';' ;
每个 foo淡出后,

将显示“已完成”。

现在,我想在所有元素上执行doSomething之后,执行一次。如果没有匹配的元素,则应立即执行继续。例如:

Value

我显然可以自己实现(通过计算调用等),但我想知道:是否有一些内置的jQuery已经做到了?

1 个答案:

答案 0 :(得分:4)

我自己通过RTFM-ing找到了它:

  

从jQuery 1.6 开始,@SpringBootApplication public class ServicesApplication { public static void main(String[] args) { SpringApplication.run(ServicesApplication.class, args); } } 方法可以与.promise()方法结合使用,以便在所有匹配元素时为整个动画执行单个回调已经完成了他们的动画。

因此,"魔术"看起来像这样:

deferred.done()

一个现场工作的例子:



$("div.foo").fadeOut();
$("div.foo").promise().done(function() { alert("All foos have been hidden."); });

$("div.foo").fadeOut();
$("div.foo").promise().done(function() { alert("All foos have been hidden."); });