w3schools tag tab page change dom javascript-events jquery dynamic-html

dom - tag - title of page html



¿Debo separar eventos en jQuery cuando elimino elementos? (2)

Si elimina un elemento con .remove (), se eliminan todos los eventos enlazados y los datos jQuery asociados con el elemento.

Aparte de .detach () , que eliminará el elemento del DOM, pero conservará todos los datos y eventos asociados en la memoria (lo cual es útil si desea volver a insertar ese elemento en otro momento)

Tengo una interfaz de usuario que usa pestañas dinámicas, por lo que el contenido se puede cargar en una pestaña y luego se puede cerrar la pestaña y se puede eliminar el contenido de la página.

Cuando cargo contenido en una pestaña adjunto muchos eventos a los elementos usando jQuery.

¿Qué sucede cuando elimino estos elementos de la página? ¿JQuery necesita saber?

Además, ¿Importa si adjunto un evento varias veces? Por ejemplo, en mi carga de pestañas podría adjuntar un evento utilizando un selector de clase como $(''.submitButton'').click(...) . Pero es posible que ya tenga otras pestañas abiertas, que ya hayan adjuntado el evento submitButton. En este caso, volveré a adjuntar el mismo evento. hay algun problema con esto?


Si usa los métodos de jQuery .remove() o .empty() , limpiarán todos los eventos (y otros datos) que fueron asignados con jQuery.

De los documentos para eliminar ():

Además de los elementos en sí, todos los eventos enlazados y los datos de jQuery asociados con los elementos se eliminan.

y para empty ():

Para evitar fugas de memoria, jQuery elimina otras construcciones, como los manejadores de datos y eventos, de los elementos secundarios antes de eliminar los elementos.

Si usó métodos nativos de API para eliminar, toda esa información se mantendrá. Así que es mejor utilizar los métodos jQuery.