问题非常简单。如果我用jQuery选择两个或多个元素,例如,使用jQuery的fadeOut()函数来隐藏它们,则调用两次回调函数(对于每个元素)。有没有办法只接收一个回调?
我目前用于执行此任务的代码粘贴在下面。
$('#element-1, #element-2').fadeOut( 250, function() { /* Callback invoked twice. */ });
之前已经发布了一个类似的问题(jQuery multiple animate() callback),但对于看似简单的问题,解决方案似乎相当复杂。
答案 0 :(得分:17)
您可以使用$.when
[docs](deferred objects):
$.when($('#element-1, #element-2').fadeOut(250)).then(function() {
// do something
});
这适用于任何动画afaik。