Este código de jQuery 1.3.2 añade un elemento a la página, se registra un evento de "clic", a continuación, quita y vuelve a unir el elemento:¿Por qué desaparecen los eventos registrados cuando se elimina un elemento de DOM?
var button = $('<button>Click me!</button>')
.click(function(){ alert("Hello") })
.appendTo('body');
$('body').html('');
button.appendTo('body');
El botón aparece en la página como se esperaba, pero al hacer clic en él hace nada. Me gustaría saber por qué los controladores de eventos se eliminaron del objeto.
Nota: Tengo conocimiento de soluciones tales como jQuery.live()
o clone(true)
o usando appendTo
sin una eliminación. Lo que estoy buscando es una explicación , no es una solución o una solución.
EDITAR: Supongo que esta podría ser una decisión de diseño arbitraria y contraintuitiva del DOM. Una explicación como "Porque esa es la forma en que la sección X de la especificación Y quiere que esté" estaría bien.
Puede actualizar la pregunta con la versión que está utilizando, o es la misma entre 1.2.6, 1.3.2 y 1.4 alpha. –