In jQuery abgeschlossen ist, ist es möglich, einen Rückruf aufrufe oder Trigger ein Ereignis nach einem Aufruf von .each()
(oder jeder anderen Art von iterativem Rückruf) abgeschlossen .eine jQuery Funktion nach .each() aufgerufen hat
Zum Beispiel würde Ich mag diese „fade und entfernen“
$(parentSelect).nextAll().fadeOut(200, function() {
$(this).remove();
});
vor einigen Berechnungen zu tun und das Einfügen neue Elemente nach den $(parentSelect)
abzuschließen. Meine Berechnungen sind inkorrekt, wenn die vorhandenen Elemente für jQuery noch sichtbar sind und das Einschlafen/Verzögern um eine willkürliche Zeitspanne (200 für jedes Element) bestenfalls als brüchige Lösung erscheint.
Ich kann leicht .bind()
die notwendige Logik, um eine Callback-Ereignis, aber ich bin nicht sicher, wie sauber die .trigger()
nach der obigen Iteration aufgerufen hat abgeschlossen. Offensichtlich kann ich den Trigger innerhalb der Iteration nicht aufrufen, da er mehrmals ausgelöst würde.
Im Fall $.each()
habe ich darüber nachgedacht, etwas zum Ende des Datenarguments hinzuzufügen (das würde ich manuell im Iterationskörper suchen), aber ich würde es hassen gezwungen zu sein, so dass ich gehofft hatte Es gab eine andere elegante Möglichkeit, den Fluss in Bezug auf iterative Rückrufe zu steuern.
Verstehe ich richtig, dass es nicht so sehr die ".each()" selbst ist, die Sie beenden möchten, sondern alle Animationen, die durch den Aufruf ".each()" gestartet werden? – Pointy
Das ist ein guter Punkt. Mit dieser speziellen Frage, ja, bin ich hauptsächlich besorgt über die Fertigstellung von ".each()" selbst ... aber ich denke, Sie werfen eine andere tragfähige Frage auf. –