Supongamos que he adjuntado una variedad de detectores de eventos a varios elementos de formulario. Más tarde, quiero eliminar todo el formulario.¿Es necesario eliminar los detectores de eventos de JavaScript antes de eliminar el elemento al que están conectados?
¿Es necesario (o sugerido) anular el registro de cualquier controlador de eventos que exista en el formulario y sus elementos? Si es así, ¿cuál es la forma más fácil de eliminar a todos los oyentes en una colección de elementos? ¿Cuáles son las repercusiones de no hacerlo? Estoy usando Prototype, si es importante.
Esto es lo que estoy haciendo en realidad. Tengo una forma simple, así:
<form id="form">
<input type="text" id="foo"/>
<input type="text" id="bar"/>
</form>
observo varios eventos en las entradas, por ejemplo:
$('foo').observe('keypress', onFooKeypress);
$('bar').observe('keypress', onBarKeypress);
etc.
El formulario se envía a través de AJAX y la respuesta es una nueva copia del formulario. Sustituyo el formulario antiguo con una copia del nuevo haciendo algo como $('form').replace(newForm)
. ¿Estoy acumulando un montón de evento cruft?