Dans jQuery, est-il possible de invoquer un callback o déclencher un événement après une invocation de .each()
(ou tout autre type de callback itératif) dispose de terminé .
Par exemple, je voudrais que ce "fondu-enchaîné" se termine
$(parentSelect).nextAll().fadeOut(200, function() {
$(this).remove();
});
avant de faire quelques calculs et d'insérer nouveau après les éléments $(parentSelect)
. Mes calculs sont incorrects si les éléments existants sont toujours visibles pour jQuery et la mise en sommeil/retardement d'une quantité arbitraire de temps (200 pour chaque élément) semble être une solution fragile au mieux.
Je peux facilement .bind()
la logique nécessaire à un rappel d'événement, mais je ne suis pas sûr de savoir comment invoquer proprement l'option .trigger()
après que l'itération ci-dessus ait terminé . Évidemment, je ne peux pas invoquer le déclencheur à l'intérieur de l'itération car il se déclencherait plusieurs fois.
Dans le cas de $.each()
J'ai envisagé d'ajouter quelque chose à la fin de l'argument data (que je rechercherais manuellement dans le corps de l'itération) mais je ne voudrais pas être obligé de le faire. J'espérais donc qu'il existait un autre moyen élégant de contrôler le flux en ce qui concerne les rappels itératifs.
1 votes
Ai-je bien compris que ce n'est pas tant le ".each()" lui-même que vous voulez terminer, mais plutôt toutes les animations lancées par l'appel ".each()" ?
0 votes
C'est un bon point. Pour cette question particulière, oui, je suis principalement préoccupé par l'achèvement de ".each()" lui-même ... mais je pense que vous soulevez une autre question viable.
0 votes
Il existe un paquet léger pour cela github.com/ACFBentveld/Await