2009-08-05 7 views
3

J'utilise $().each() pour faire défiler certains éléments. Je veux m'assurer que l'action qui suit ce script n'est exécutée que lorsque each() est terminée.jQuery chaque() et "en cas de succès"?

Exemple:

$('something').each(function() { 
    // do stuff to items 
}); 

// do something to one of these items 
$('item').etc 

Il semble fonctionner à ce stade, car il est vraiment une action de base. Mais parfois, il échoue et il semble que la partie each() est toujours occupée, ce qui entraîne l'écrasement de l'action du script de suivi par les actions each().

Alors ... est-ce possible? Ou est le code ci-dessous la fonction each() toujours exécuté après le code précédent. Je sais que par exemple Les appels AJAX ont une fonction "succès", pour forcer le code à s'exécuter uniquement lorsque l'action parent est terminée. Est-ce nécessaire/possible ici? J'ai essayé quelque chose comme ce qui suit, mais cela ne semble pas fonctionner:

$('something').each(function() { 
    // do stuff to items 
}, function() { 
    // do stuff when the each() part has completed 
});

Répondre

5

each n'est pas asynchrone, tout ce qui vient après devrait execute par la suite et il n'y a pas de support pour un rappel. Cependant, cela dépendra de ce que fait votre «faire des trucs aux objets», car certains d'entre eux pourraient être asynchrones - par exemple des animations, glisser vers le haut/bas, etc - et ces méthodes prennent en charge les rappels.

Questions connexes