Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Elementos dinámicos y eventos

Estas en el tema de Elementos dinámicos y eventos en el foro de Javascript en Foros del Web. Como gestionar eventos en elementos creados dinamicamente. Ejemplo: Al hacer click en un boton, se crea una caja, que no estaba en el DOM, con ...
  #1 (permalink)  
Antiguo 06/03/2013, 18:50
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 8 meses
Puntos: 21
Elementos dinámicos y eventos

Como gestionar eventos en elementos creados dinamicamente.

Ejemplo:

Al hacer click en un boton, se crea una caja, que no estaba en el DOM, con id caja.


Una vez creado el elemento con id "Caja", necesito que esté disponible en el dom para poder asociarle eventos a este elemento creado. ¿Cómo se haría esto?

Hasta el día de hoy hago lo siguiente: creo el elemento e inmediatamente le asocio el evento...pero no me resulta nada práctico...
__________________
_
  #2 (permalink)  
Antiguo 06/03/2013, 19:37
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Elementos dinámicos y eventos

mira, para crar un objeto del DOM, podes utilizar el siguiente codigo
Código Javascript:
Ver original
  1. elemento = document.createElement('div'); // crear el elemento
  2. elemento.id='Caja'; // le asignamos el ID
  3. document.body.appendChild(elemento); // posisiciona el elemento como el ultimo hijo de otro (este caso es el document.body, pero puede ser cualquier otro objeto del DOM)

es eso

un saludo !
  #3 (permalink)  
Antiguo 06/03/2013, 19:50
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Elementos dinámicos y eventos

Gracias, aunque no era lo que planteaba.

Mi duda es sobre el manejo de eventos sobre elementos que no estan en el dom apenas se carga el documento y se crea luego mediante la acción de otro evento.

Caraga documento.
Click en boton crear caja
creo caja con id="caja"
Recién ahora puedo adjuntar eventos a id="caja" pq antes no existia??

COmo es el manejo de eventos en estos casos?
__________________
_
  #4 (permalink)  
Antiguo 06/03/2013, 20:41
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Elementos dinámicos y eventos

no se le puede asignar eventos a elementos que no existan, pero con el simple hecho de hacer lo siguiente
Código Javascript:
Ver original
  1. elemento = document.createElement('div');
ya existen, con eso ya se le puede agregar el id y los eventos.
un elemento puede existir, pero no estar ubicado en ningun lado, y si no esta posicionado, no se puede obtener mediante document.getElementById()

lo que tratas de hacer aqui
Cita:
creo caja con id="caja"
Recién ahora puedo adjuntar eventos a id="caja" pq antes no existia??
es algo innescesario, digamos por que se resume en el siguiente codigo
Código Javascript:
Ver original
  1. elemento = document.createElement('div');
  2. elemento.id='Caja';
  3. document.body.appendChild(elemento);
  4. document.getElementById('Caja').addEventListener('click',function(){})

se puede hacer asi simplemente

Código Javascript:
Ver original
  1. elemento = document.createElement('div');
  2. elemento.id='Caja';
  3. document.body.appendChild(elemento);
  4. elemento.addEventListener('click',function(){})

y ademas, no nescesita estar obligatoriamente adentro del documento, por lo cual esto también funcionara

Código Javascript:
Ver original
  1. elemento = document.createElement('div');
  2. elemento.id='Caja';
  3. elemento.addEventListener('click',function(){})
  4. document.body.appendChild(elemento);

(reordene las ultimas dos lineas)

pero no funcionara esto

Código Javascript:
Ver original
  1. elemento = document.createElement('div');
  2. elemento.id='Caja';
  3. document.getElementById('Caja').addEventListener('click',function(){})
  4. document.body.appendChild(elemento);

ya que al hacer document.getElementById('Caja') el elemento #Caja no se encuentra en el documento ( recien en la siguiente linea se agrega )

un saludo !
  #5 (permalink)  
Antiguo 06/03/2013, 20:56
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Elementos dinámicos y eventos

Muchas Gracias!
__________________
_

Etiquetas: elementos, eventos
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 18:14.