Foros del Web » Programando para Internet » Javascript »

Detectar clicks en elementos cargados dinámicamente.

Estas en el tema de Detectar clicks en elementos cargados dinámicamente. en el foro de Javascript en Foros del Web. Hola gente. Tengo un problema que no puedo resolver. Ya me ha pasado otras veces. Mi problema es que cuando cargo elementos dinámicamente al html ...
  #1 (permalink)  
Antiguo 12/01/2012, 14:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 91
Antigüedad: 15 años
Puntos: 1
Exclamación Detectar clicks en elementos cargados dinámicamente.

Hola gente.

Tengo un problema que no puedo resolver. Ya me ha pasado otras veces.

Mi problema es que cuando cargo elementos dinámicamente al html (divs por ejemplo)
no puedo detectar los eventos del mouse sobre ese objeto.
Por ejemplo,
Si yo hago:

Código Javascript:
Ver original
  1. <div id="content">
  2. <button id="addButton">Add</button>
  3. <div id="container"></div>
  4. </div>
  5.  
  6. $('#addButton').click(function(){
  7.  $('#container').html('<div id="divClickeable">DivClickeable</div>');
  8. }
  9. //ESTA FUNCION ES LA QUE NO FUNCIONA PARA EL DIVCLICKEABLE
  10. $('#divClickeable').click(function(){
  11. alert('clickeaste el nuevo div');
  12. }

Una vez que cargas el nuevo div, e intentas clickear el evento del click no funciona.
Se de la solución de escribir el código javascript cada vez que escribís el html. (por ejemplo cuando cargas desde un callback php).

No quiero que le den bola a la sintaxis, solo quiero saber como hago para que los elementos cargados dinámicamente puedan detectar los eventos del mouse.

Gracias!.
  #2 (permalink)  
Antiguo 12/01/2012, 15:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Detectar clicks en elementos cargados dinámicamente.

cuando creas elementos dinámicamente, son elementos independientes, es decir que no heredan ninguna propiedad de los elementos existentes similares, debes de añadir también dinámicamente los listeners (eventos) hacia los mismos al crearlos.

como veo que usas jQuery, puedes usar jQuery Live, aunque éste está enfocado cuando se usa AJAX, no se si contemple cualquier elemento añadido que no provenga de ajax, si no la alternativa más viable es a través de DOM
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: clicks, elementos, funcion, html, php
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 19:40.