使用jQuery隐藏多个元素并获得一个回调
问题描述:
问题非常简单。如果我用jQuery选择两个或多个元素,例如,使用jQuery的fadeOut()函数来隐藏它们,则会调用两次(对于每个元素)回调函数。有没有办法只接收一个回调?使用jQuery隐藏多个元素并获得一个回调
我目前用来执行此任务的代码粘贴在下方。
$('#element-1, #element-2').fadeOut(250, function() { /* Callback invoked twice. */ });
类似的问题之前(jQuery multiple animate() callback)已经发布,但解决方案似乎是什么似乎一个简单的问题相当复杂。
答
您可以使用$.when
[docs](deferred objects):
$.when($('#element-1, #element-2').fadeOut(250)).then(function() {
// do something
});
这适用于任何AFAIK动画。
有没有其他办法?它看起来如此漫无目的......或者被认为是jQuery中的一种合适的方式,这只是我对对象的无知? –
我不知道任何其他方式,'.animate'文档也没有提及任何东西。 –