使用jQuery隐藏多个元素并获得一个回调

时间:2011-09-11 13:01:44

标签: javascript jquery

问题非常简单。如果我用jQuery选择两个或多个元素,例如,使用jQuery的fadeOut()函数来隐藏它们,则调用两次回调函数(对于每个元素)。有没有办法只接收一个回调?

我目前用于执行此任务的代码粘贴在下面。

$('#element-1, #element-2').fadeOut( 250, function() { /* Callback invoked twice. */ });

之前已经发布了一个类似的问题(jQuery multiple animate() callback),但对于看似简单的问题,解决方案似乎相当复杂。

1 个答案:

答案 0 :(得分:17)

您可以使用$.when [docs]deferred objects):

$.when($('#element-1, #element-2').fadeOut(250)).then(function() {
    // do something
});

DEMO

这适用于任何动画afaik。