Foros del Web » Programando para Internet » Javascript »

Saber si un objeto se ha eliminado

Estas en el tema de Saber si un objeto se ha eliminado en el foro de Javascript en Foros del Web. Buenas a todos, Tengo un lio en la cabeza que espero alguien sepa que medicina debo tomar. El caso es que tengo una funcion que ...
  #1 (permalink)  
Antiguo 01/08/2013, 17:26
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 7 años
Puntos: 10
Saber si un objeto se ha eliminado

Buenas a todos,

Tengo un lio en la cabeza que espero alguien sepa que medicina debo tomar. El caso es que tengo una funcion que llama a otra enviandole en un parametro un objeto y usando un setinterval constante cada 100ms.

Pasado un rato, el objeto es eliminado a lo bruto usando innerHTML en su padre. Por ello, la funcion que se esta aun llamado cada 100 ms no se entera y da errores.

Me gustaria usar un clearInterval si el objeto no se encuentra.

¿Como puedo saber que el parametro que me llega con el objeto se ha eliminado el objeto?.

Código Javascript:
Ver original
  1. function a()
  2. {
  3. //el this es un div
  4. this.x=setInterval(b, 100, this);
  5. }
  6. function b(t)
  7. {
  8. if(t)
  9. {
  10. //aunque se elimine el this del HTML, sigue funcionando
  11. }
  12. else clearInterval(t.x);
  13. }
  #2 (permalink)  
Antiguo 01/08/2013, 17:57
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.035
Antigüedad: 11 años, 7 meses
Puntos: 1328
Respuesta: Saber si un objeto se ha eliminado

¿Y por que no haces el clear interval cuando eliminas el objeto?

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 01/08/2013, 23:27
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 7 años
Puntos: 10
Respuesta: Saber si un objeto se ha eliminado

Por que quien lo elimina es una funcion a la que no tengo acceso, jeje.

:D
  #4 (permalink)  
Antiguo 02/08/2013, 17:33
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 7 años
Puntos: 10
Respuesta: Saber si un objeto se ha eliminado

Buenas a todos,

Siento molestar, jojo. El caso es que es curioso, pero al almacenar ese objeto en una variable, tambien se guarda todo el arbol DOM del objeto. Uf, realmente no se me ocurre como saber si existe o no el div.

:P
  #5 (permalink)  
Antiguo 03/08/2013, 09:26
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 9 años, 10 meses
Puntos: 45
Respuesta: Saber si un objeto se ha eliminado

Buenas,

Antes de nada, tienes un error en el uso de setTimeout, sólo usa dos parámetros, la función y el tiempo. Y el this de la función en este caso será el objeto window.

Para pasar el this que te interesa puedes usar por ejemplo una función anónima Y para comprobar si se ha eliminado del DOM tendrás que mirar si existe. Por ejemplo si tienes una referencia al padre mirar en su lista de hijos. En la matriz childNodes se reflejan los cambios que se hacen en la jerarquía del DOM en tiempo real, y aunque se volviera a crear con innerHTML un elemento con el mismo contenido no sería idéntico, de ahí la importancia del operador ===.

Código Javascript:
Ver original
  1. this.x=setInterval(function() { b(this); }, 100);
  2.  
  3. function b(t)
  4. {
  5.     var papi = document.getElementById('padre');
  6.     var childs = papi.childNodes;
  7.     var n = childs.length;
  8.     for (var i = 0; i < n; ++i)
  9.     {
  10.         if (childs[i] === t) // Importante: ===, no vale ==
  11.         {
  12.             clearTimeout(t.x);
  13.             t.x = null;
  14.             return;
  15.         }
  16.     }
  17.  }
__________________
tecnawebs.es Diseño web y programación - Modelado 3D.

google plus
  #6 (permalink)  
Antiguo 03/08/2013, 23:04
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 7 años
Puntos: 10
Respuesta: Saber si un objeto se ha eliminado

Muchas gracias Tecna voy a usar tu codigo, jeje.

Gracias!!!!!... menudas aberraciones de codigo hago. Algun dia mientras programo me comen.

:D

Etiquetas: funcion, html, objeto
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:20.