Hi
Eine Animation mit jQuery läuft ja asynchron:
"nach animatecode" wird vor "animate fertig" ausgegeben.
So weit so gut. Grundsätzlich kann man ja seine Funktion die man nach der Funktion ausführen will einfach als Parameter übergeben (Wie ich es hier auch gemacht habe: "function() { console.log("animate fertig"); }"
Wie aber führe ich eine Funktion aus die auf das Ende von mehreren unterschiedlichen Animationen warten soll?
Mein jetziger Stand ist:
Ich packe alle Animationen in ein Array, setze wenn die Animation gestartet wird sie im Array auf false und setze sie wenn sie fertig ist wieder auf true und rufe dann meine Funktion auf die zuerst das ganze Array durchgeht und den eigentlichen Inhalt nur ausführt wenn alle Einträge des Arrays true sind.
Und weil ich das mit Sprache nur schwer erklären kann hier ein fiddle:
http://fiddle.jshell.net/3sPSx/
Meine eigentliche Frage ist nun: Kann man das auch eleganter machen?
Eine Animation mit jQuery läuft ja asynchron:
Javascript:
$("#img1").animate({
width: '225px',
}, 500, function() {
console.log("animate fertig");
});
console.log("nach animatecode");
So weit so gut. Grundsätzlich kann man ja seine Funktion die man nach der Funktion ausführen will einfach als Parameter übergeben (Wie ich es hier auch gemacht habe: "function() { console.log("animate fertig"); }"
Wie aber führe ich eine Funktion aus die auf das Ende von mehreren unterschiedlichen Animationen warten soll?
Mein jetziger Stand ist:
Ich packe alle Animationen in ein Array, setze wenn die Animation gestartet wird sie im Array auf false und setze sie wenn sie fertig ist wieder auf true und rufe dann meine Funktion auf die zuerst das ganze Array durchgeht und den eigentlichen Inhalt nur ausführt wenn alle Einträge des Arrays true sind.
Und weil ich das mit Sprache nur schwer erklären kann hier ein fiddle:
http://fiddle.jshell.net/3sPSx/
Meine eigentliche Frage ist nun: Kann man das auch eleganter machen?