JQuery Warten Sie, bis alle Seitenanimationen erledigt sind
Frage
Ich weiß, wie man wartet, bis eine Animation mit erledigt ist
$('#element').animate(speed,function(){
//code here
});
und mit mehreren Elementen mit
$('#element1, #element2').promise().done(function(){
//code here
});
Aber wie warte ich bis bis alle Von den Elementen auf der Seite werden animieren? Ich würde viel lieber nicht nur jedes Element einsetzen, auf das ich dort warte.
Lösung
Um alles auszuwählen, was derzeit animiert wird, tun Sie einfach nur $(":animated")
http://api.jquery.com/animated-selector/
Kombinieren Sie das mit dem, was Sie dort haben, wäre einfach nur
$(":animated").promise().done(function() {
//code here
});
Andere Tipps
Die Antwort von Jeremy T funktioniert einwandfrei - obwohl er auf den Kommentaren auf der von ihm verlinkten JQuery -Site basiert (http://api.jquery.com/animated-selector/), es wäre eine schnellere Lösung, um jedem Element auf der Seite, das möglicherweise animiert ist
$('.animationclass').filter(':animated').promise().done(function() {
//Your function
});