Foros del Web » Programando para Internet » Jquery »

.each no funciona al recargar con ajax, como usar .on ?

Estas en el tema de .each no funciona al recargar con ajax, como usar .on ? en el foro de Jquery en Foros del Web. Hola a todos tengo un inconveniente al usar ajax y posteriormente jquery . Normalmente para ejecutar mis funciones lo que hago es esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 24/05/2013, 13:38
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 7 meses
Puntos: 27
.each no funciona al recargar con ajax, como usar .on ?

Hola a todos tengo un inconveniente al usar ajax y posteriormente jquery .
Normalmente para ejecutar mis funciones lo que hago es esto:

Código Javascript:
Ver original
  1. $('.mi_clase').on('click','.mi_subclase',function() {
  2.    //mis funciones
  3.     });

Y de esta manera me sirve al recargar con ajax

Pero ahora tengo que ejecutar una funcion como la siguiente:

Código Javascript:
Ver original
  1. $("#add-courses-plan tr:has(td)").each(function() {
  2.       var t = $(this).text().toLowerCase();  
  3.                 $("<td class='indexColumn'></td>")
  4.                 .hide().text(t).appendTo(this);
  5.             });
  6.  
  7.            
  8.             $("#fil-add-table-cuourses").keyup(function() {
  9.                 var s = $(this).val().toLowerCase().split(" ");
  10.                 $("#add-courses-plan tr").show();
  11.                 $.each(s, function() {
  12.                      $("#add-courses-plan tr:visible .indexColumn:not(:contains('"
  13.                      + this + "'))").parent().hide();
  14.                 });  
  15.             });

Pero no tengo idea de como usar para este caso el .on con el fin de que la funcion sirva cuando recargo con ajax

Agradezco si alguien me indica si el .on lo debo usar y de que manera usarlo

Muchas gracias
  #2 (permalink)  
Antiguo 24/05/2013, 14:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: .each no funciona al recargar con ajax, como usar .on ?

eso se debe a que como ajax es asíncrono, al momento de asignar los eventos con .on los objetos NO existen en dicho momento en el DOM.

¿solución?: volver a aplicar los eventos luego de que la petición ajax complete, es decir, en el success (y obviamente después de agregarlos al DOM ).

también tienes jQuery.live() que lo hace de forma automática, pero muchos desarrolladores insisten en que da más problemas de los que soluciona, depende de ti usarlo, ya estás prevenido, suerte
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/05/2013, 14:46
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 7 meses
Puntos: 27
Respuesta: .each no funciona al recargar con ajax, como usar .on ?

Me podrias dar un ejemplo de como aplicar el live en ese each....
  #4 (permalink)  
Antiguo 28/05/2013, 07:27
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 14 años, 2 meses
Puntos: 48
Respuesta: .each no funciona al recargar con ajax, como usar .on ?

En vez de usar live, es mejor usar delegate.
En etnassoft hay un artículo titulado "Por qué no debemos usar nunca jQuery live" en el que explica los motivos.
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España

Última edición por Trublux; 28/05/2013 a las 07:27 Razón: Añadir enlaces

Etiquetas: ajax, usar
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 13:06.