2010-10-18 10 views
0

J'ai écrit un petit plugin pour gérer des champs de texte à entrer dans le texte pour l'édition à la volée, et il inclut des arguments qui permettent à un utilisateur d'exécuter des fonctions à différents intervalles de la processus. Je souhaite que l'utilisateur puisse cliquer sur «l'actionneur» (l'élément qui contrôle le processus) et choisir d'exécuter une fonction intermédiaire après avoir cliqué sur le bouton (fonction A) et une autre pour exécuter après le champ a été remis en texte standard (fonction B).Fonctions de chaînage dans un plugin jQuery

L'hypothèse est que la fonction A contiendra généralement une sorte d'appel asynchrone. Comment faire pour que la fonction B soit exécutée après l'achèvement de la fonction A? J'essaie d'éviter les situations où certaines valeurs doivent être passées pour "marquer" une fonction comme prête.

Répondre

2

Puisqu'il n'y a pas encore eu de réponse, je vais essayer. Je pense que je sais ce que vous essayez de faire.

Tous vos appels asynchrones auront un rappel optionnel. Vous pouvez donc appeler une fonction ou vous pouvez également configurer certains événements personnalisés.

http://api.jquery.com/bind/

Ensuite, vous pouvez les choses 'lient' à ces événements. Ainsi, d'autres fonctions appellent quand cet événement ou cette fonction appelle. Essentiellement les gestionnaires d'événements & auditeurs. Alors que différentes choses se produisent dans votre application, il suffit d'écouter les événements et de vous activer ou désactiver pour savoir s'ils peuvent être activés ou utilisés à un moment donné.

Vous pourriez aussi faire cela car je pense que vous avez d'abord essayé d'utiliser des drapeaux booléens, mais cela pourrait devenir assez compliqué en fonction de votre nombre.

+1

Résumé: vous devez utiliser des rappels au lieu de vous fier au flux de code synchrone –

Questions connexes