Foros del Web » Programando para Internet » Jquery »

el evento change deja de funcionar cuando genero combo por ajax.

Estas en el tema de el evento change deja de funcionar cuando genero combo por ajax. en el foro de Jquery en Foros del Web. Veran cuando recien recargo la pagina me carga un combo lleno de datos que está dentro de un div. luego cuando selecciono algun elemento del ...
  #1 (permalink)  
Antiguo 29/04/2016, 21:17
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 12 años, 3 meses
Puntos: 52
el evento change deja de funcionar cuando genero combo por ajax.

Veran cuando recien recargo la pagina me carga un combo lleno de datos que está dentro de un div.
luego cuando selecciono algun elemento del combo, el evento change me manda un alerta..
hasta allí todo correcto.

tengo un boton que me borra el combo del div y que luego me lo vuelve a poner con nuevos datos, todo correcto.
el problema es que a pesar de que es exactamente el mismo combo, el evento change ya no me manda alerta.
a que se debera eso?
les ha pasado?

intente hacer esto pero nada

Código Javascript:
Ver original
  1. $(".miclase").bind("click", function(){
  2.    alert("Has hecho clic");
  3. });

de antemano gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por minombreesmm; 29/04/2016 a las 22:26
  #2 (permalink)  
Antiguo 02/05/2016, 06:33
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 11 meses
Puntos: 5
Respuesta: el evento change deja de funcionar cuando genero combo por ajax.

Seguramente te falta la funcion live o delegate u on (segun la version de jQuery q utilices)
Ej

Código Javascript:
Ver original
  1. //si tu version de jquery es muy nueva
  2. $(".miclase").on("click", function(){
  3.    alert("Has hecho clic");
  4. });
  5.  
  6.  
  7. //si tu version de jquery es muy vieja -- 1.7 para atras
  8. $(".miclase").live("click", function(){
  9.    alert("Has hecho clic");
  10. });
  #3 (permalink)  
Antiguo 02/05/2016, 23:36
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 12 años, 3 meses
Puntos: 52
Respuesta: el evento change deja de funcionar cuando genero combo por ajax.

Cita:
Iniciado por infoturnosya Ver Mensaje
Seguramente te falta la funcion live o delegate u on (segun la version de jQuery q utilices)
Ej
....
[/HIGHLIGHT]
Gracias, tenia un detalle que me faltaba, y es que tenia que volver a poner todo el codigo dentro de la asignacion del evento del elemento generado dinamicamente.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #4 (permalink)  
Antiguo 03/05/2016, 21:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: el evento change deja de funcionar cuando genero combo por ajax.

No es necesario hacer eso. Tan solo tienes que delegar el evento al elemento ancestro del combo generado dinámicamente:
Código Javascript:
Ver original
  1. $("ancestro").on("evento", "combo", function(){
  2.     //Instrucciones
  3. });

Con eso te bastará tanto para cuando cargue la página por primera vez (combo generado junto al DOM) como cuando añadas un combo de forma dinámica (después de la carga del DOM). En donde dice "ancestro", debe ir el selector del elemento que contiene al combo o en donde este será añadido. En donde dice "evento", evidentemente debe ir el nombre del evento que deseas que desencadene las acciones; y en donde dice "combo", debe ir el selector del combo.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: combo, evento, funcionar, genero
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 03:35.