Supposons que j'ai attaché une variété d'écouteurs d'événements à divers éléments de formulaire. Plus tard, je veux supprimer le formulaire entier.Les écouteurs d'événements javascript doivent-ils être supprimés avant de supprimer l'élément auquel ils sont attachés?
Est-il nécessaire (ou suggéré) de désenregistrer les gestionnaires d'événements qui existent sur le formulaire et ses éléments? Si oui, quel est le moyen le plus simple de supprimer tous les écouteurs d'une collection d'éléments? Quelles sont les répercussions de ne pas le faire? J'utilise Prototype, si c'est important.
Voici ce que je suis en train de faire. J'ai une forme simple, comme celui-ci:
<form id="form">
<input type="text" id="foo"/>
<input type="text" id="bar"/>
</form>
J'observe divers événements sur les entrées, par exemple:
$('foo').observe('keypress', onFooKeypress);
$('bar').observe('keypress', onBarKeypress);
etc.
Le formulaire est transmis via AJAX et la réponse est nouvelle copie du formulaire. Je remplace l'ancien formulaire par une copie du nouveau faisant quelque chose comme $('form').replace(newForm)
. Suis-je en train d'accumuler un tas d'événements cruels?