Foros del Web » Programando para Internet » Jquery »

Agregar eventos a campos cargados con ajax

Estas en el tema de Agregar eventos a campos cargados con ajax en el foro de Jquery en Foros del Web. Buenas amigos, Últimamente me he presentando con algunos problemas, q no estoy seguro de cual puede ser la solución más correcta, referente a formularios o ...
  #1 (permalink)  
Antiguo 26/04/2014, 10:30
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 8 meses
Puntos: 16
Agregar eventos a campos cargados con ajax

Buenas amigos,

Últimamente me he presentando con algunos problemas, q no estoy seguro de cual puede ser la solución más correcta, referente a formularios o campos de ellos que sean cargados con refrescamiento del DOM, bien sea con un llamado ajax o agregados con javascript en general, se que uno puede asociar eventos a los nuevos campos on el on o delegate, sin embargo me gustaria saber si tienen idea de como hacer una solución "más" general q pueda ser captada en cualquier sitio.
Explico mi porq con el caso del datepicker.

Tengo el siguiente código dentro de una función ready:
Código Javascript:
Ver original
  1. if($("[data-control=datepicker]").size()>0){
  2.         $.each($("[data-control=datepicker]"),function(indice,campo){
  3.             $(this).datepicker();  
  4.         });

asi se asigna el datepicker a cualquier campo q tenta el atributo "data-control" con valor datepicker, la cuestión es q como es lógico no funciona para los campos q puedan ser cargados con ajax, y no estoy seguro de como asociarlo ya que el evento "on" me obliga a asociar una acción y el elemento padre
algo asi:

Código Javascript:
Ver original
  1. $( 'body' ).on('click','algunBoton',function(){
  2.                       $("[data-control=datepicker].datepicker();
  3. })

La cuestión es que no siempre es con un "click" q se refresca las paginas y no siempre es sobre un botón, entonces lo que quiero en general es buscar la forma d que el javascript me reconozca el refrescamiento para asociar los eventos.

No estoy seguro de haberme explicado bien. de igual manera gracias a quien pueda responder.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #2 (permalink)  
Antiguo 26/04/2014, 14:33
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Agregar eventos a campos cargados con ajax

En el código que utilizas para cargar los nuevos elementos, aplica el método datapicker a cada elemento nuevo.

Saludos
__________________
«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
  #3 (permalink)  
Antiguo 26/04/2014, 14:54
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 8 meses
Puntos: 16
Respuesta: Agregar eventos a campos cargados con ajax

Eso es lo que hago normalmente, pero eso implica que tenga q crear javascript en cada recarga con ajax o algo pues, lo que me gustaria es el "tener que hacer lo mismo" cada vez q suceda un evento. pero bueno... muchas gracias igual
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #4 (permalink)  
Antiguo 26/04/2014, 15:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Agregar eventos a campos cargados con ajax

Si dices que haces eso, muéstranos el código que has desarrollado para poder ayudarte.
__________________
«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: ajax, campos, 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 04:02.