Foros del Web » Programando para Internet » Jquery »

JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Estas en el tema de JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado? en el foro de Jquery en Foros del Web. Hola! Llevo un buen rato mirando esto, y juraría que no hay ningún evento, tanto nativo javascript como en jQuery para capturar cuando se ha ...
  #1 (permalink)  
Antiguo 12/06/2014, 02:48
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 7 meses
Puntos: 1
Pregunta JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Hola!

Llevo un buen rato mirando esto, y juraría que no hay ningún evento, tanto nativo javascript como en jQuery para capturar cuando se ha eliminado un objeto del DOM?

Realmente lo necesito para detectar cuando se ha quitado una imagen contenida en el famoso editor WYSIGYG 'tinymce' pero al no contar su API tampoco con ese evento he optado por tratar de capturarlo a nivel 'global' con jQuery.

(Por si acaso alguien le interesa conocer / utilizar el componente tinymce)

Alguien puede ayudarme con este tema?
Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 12/06/2014, 03:07
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Creo que algo así, podría ayudarte:

http://v3.javascriptmvc.com/jquery/d...t.destroyed.js

Aunq es más genérico (funcionaria con html() y replace())... si solo quieres que sea con remove(), puedes hacer un "hook" a esa función ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 12/06/2014, 03:17
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Hola!
Eleazan, gracias por tu ayuda.

Supongo entonces que jQuery no cuenta con ese evento. Que raro, supongo que habrán tomado nota.

Bien, usaré ese ejemplo que has añadido. Se puede concretar para el tipo de nodo IMG y para el caso de remove() como bien dices. Voy a probar y si tengo más dudas vuelvo por aquí.

Muchas gracias y un saludo.
  #4 (permalink)  
Antiguo 12/06/2014, 03:34
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Cita:
Iniciado por bauhaus1975 Ver Mensaje
Hola!
Eleazan, gracias por tu ayuda.

Supongo entonces que jQuery no cuenta con ese evento. Que raro, supongo que habrán tomado nota.

Bien, usaré ese ejemplo que has añadido. Se puede concretar para el tipo de nodo IMG y para el caso de remove() como bien dices. Voy a probar y si tengo más dudas vuelvo por aquí.

Muchas gracias y un saludo.
Existe el método "cleanData" (interno de jQuery), que se ejecuta cada vez que haces un "replace", "remove", "html", o similares.... el truco es sobreescribir esa función, para lanzar el trigger que quieras, y asi tener el tema controlado

Es algo raro, que nunca he usado, pero sabia que estaba ahí ;)

Espero que te funcione! Saludos
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 12/06/2014, 03:48
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Entiendo.
No la conocía, pero ese ejemplo de función que me has pasado hace el 'match' de elementos al cargar la página. Quiere decir que si el usuario añade elementos en tiempo de ejecución, éstos no serán capturados en caso de que los elimine posteriormente. ¿No?

Ten en cuenta que yo lo que quiero hacer es, (que por cierto lo he especificado). Detectar cuando el usuario ha eliminado una imagen dentro del editor (tinymce) porque cuando actualice los cambios tendré que actualizar la base de datos eliminando la misma imagen que haya quitado en el editor.
  #6 (permalink)  
Antiguo 12/06/2014, 09:29
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Cita:
Iniciado por bauhaus1975 Ver Mensaje
Entiendo.
No la conocía, pero ese ejemplo de función que me has pasado hace el 'match' de elementos al cargar la página. Quiere decir que si el usuario añade elementos en tiempo de ejecución, éstos no serán capturados en caso de que los elimine posteriormente. ¿No?

Ten en cuenta que yo lo que quiero hacer es, (que por cierto lo he especificado). Detectar cuando el usuario ha eliminado una imagen dentro del editor (tinymce) porque cuando actualice los cambios tendré que actualizar la base de datos eliminando la misma imagen que haya quitado en el editor.
Ña!

Me hice la picha un lío xD

Entonces lo tienes más fácil.

Antes de cambiarlo en la bbdd, saca las <img> y sus src con un preg_match por ejemplo, despues haces lo mismo con el que vas a modificar, y miras con los primeros resultados los que no estan en el nuevo codigo de tiny, y vas haciendo el borrado...

¿Algo así? :D
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 12/06/2014, 14:43
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Voy a estudiarlo.
Explicare con detalle el resultado.
Gracias!
  #8 (permalink)  
Antiguo 16/06/2014, 12:22
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: JQuery ¿Cómo detectar cuando un elemento del DOM es eliminado?

Hola!
Después de estudiarlo no veo ningún motivo por el que no realizar el proceso en el servidor (de momento) como has recomendado. Tras el envio de datos del formulario, y por tanto del contenido del tinymce.

Siento que el tema al resolverse en el servidor, y pasar a resolverse con temática PHP puede estar en el foro equivocado.

La página con el formulario incorpora la funcionalidad de subir imágen, vía ajax llama a otro script (acción). se redimensiona la imagen y queda en un dir temporal.

Cosas que, además, he tenido en cuenta:
  • Para trabajar con PHP sobre el contenido HTML que devuelva el tinymce lo mejor es usar lo que ya hay inventado. Y Para parsear un documento nada mejor que usar las clase nativa DOMDocument.
  • Identificar cuando una nueva imagen no sea un recurso externo. Sólo interesa gestionar los subidos al servidor.
  • Teniendo la lista de nuevas imágenes subidas, podemos saber que almacenar y que eliminar.
  • Las imágenes nuevas se mueven desde el repositorio temporal a la ubicación final, dentro de una clasificación ect.

Creo que básicamente es todo. Si alguien tiene dudas o quiere aportar, ya sabe qué hacer.

Gracias por tu ayuda, nos leeremos pronto!

Etiquetas: evento, tinymce
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:24.