/ / jQuery.remove () no elimina el elemento - jquery

jQuery.remove () no elimina elemento - jquery

Estoy creando un widget (un div padre con niñoDivs y anclajes) dinámicamente en la página y quiero eliminar el widget de la página en función de la acción de clic del usuario en un div (que se muestra como un botón de cierre) que es un div hijo del widget.

El controlador de eventos para el "botón de cierre" está vinculado a este elemento utilizando lo siguiente:

$("#elemID").on("click", callbackFunc)

Cuando se llama a callbackFunc, a su vez llama a otra función para eliminar el widget (el elemento primario del botón de cierre) de la página usando:

$("#elemIdOFWidget").remove();

pero se genera el siguiente error:

No se detectó TypeError: no se puede leer la propiedad "origType" de undefined (...)

Se genera el mismo error si uso el depurador para intentar eliminar el widget directamente. Curiosamente, detach funciona en el mismo elemento sin errores:

$("#elemIdOFWidget").detach();

Mis preguntas:

  • ¿Qué significa el error generado?

  • ¿Por qué remove () no funciona en el elemento pero detach () sí?

  • Además, parece que si adjunto el controlador de eventos al "botón de cierre" usando javacript sin formato, como:

    closeButtonElem.addEventHandler ("click", callbackFunc)

entonces, el remove () funciona bien:

$("#elemIdOFWidget").remove();

pero ¿por qué la diferencia?

Gracias de antemano.

También aquí hay una imagen mía usando el depurador para probar esto en otro elemento. en el primer intento de eliminar el elemento utilizando

$(".siteTitleClass").remove()

.remove () funciona bien pero luego recargo la páginay tan pronto como uso jQuery para vincular el controlador de eventos al mismo elemento, el método .remove () genera un error. Debe haber algo que vincule el controlador de eventos al elemento que cause un error en el método .remove (). ¿Alguna idea?

Eliminando el elemento usando el depurador Chrome después de vincular el controlador de eventos usando jQuery

Respuestas

0 para la respuesta № 1

.detach () mantiene todos los datos de jQuery asociados con los elementos eliminados. Este método es útil cuando los elementos eliminados se reinsertarán en el DOM en un momento posterior.

.remove () elimina todo, probablemente no lo que desea con componentes dinámicos.