2010-09-20 5 views
1

J'utilise une info-bulle YUI pour afficher un message d'erreur lorsque les utilisateurs passent la souris sur une icône d'erreur affichée à côté d'un champ de formulaire. Lorsque l'erreur disparaît, je supprime l'icône d'alerte du DOM et je souhaite également supprimer l'info-bulle. Pour cela, j'appelle le tooltip.destroy(). Est-ce la bonne façon de procéder, ou est-ce que le destroy() est destiné à autre chose? La documentation pour destroy() n'est pas très claire sur le sujet.YUI: Quelle est la sémantique de Module.destroy()

(Je pose la question parce que si vous détruisez l'info-bulle juste après doHide() a été appelé sur l'info-bulle, hide() est appelé 5 s plus tard, ce qui vous donne une erreur hide() tente d'accéder this.cfg qui a été mis à null par destroy(). Cela pourrait être un bug de YUI, ou comme je le soupçonne, comme un signe que je ne suis pas en utilisant l'API de la façon dont il a été conçu.)

Répondre

1

au lieu de faire tooltip.destroy(), il semble mieux désactivé l'info-bulle. Il peut ne pas être aussi efficace que détruire l'info-bulle, mais il évite le problème mentionné dans la question où les rappels enregistrés avant l'appel destroy() mais qui ont ensuite du mal à gérer les propriétés de l'objet null. En outre, si l'info-bulle s'affiche, vous devez le masquer immédiatement en appelant le hide(). En résumé, le code sera:

tooltip.cfg.setProperty("disabled", true); 
tooltip.hide(); 
Questions connexes