Foros del Web » Programando para Internet » Jquery »

curiosidad con jquery

Estas en el tema de curiosidad con jquery en el foro de Jquery en Foros del Web. He estado trabajando con ajax para recargar ciertas zonas de la pagina, por ejemplo en una tabla tenia varios enlaces con la clase "editar" a ...
  #1 (permalink)  
Antiguo 03/11/2011, 12:52
Avatar de abermejo  
Fecha de Ingreso: julio-2011
Mensajes: 20
Antigüedad: 12 años, 9 meses
Puntos: 6
Pregunta curiosidad con jquery

He estado trabajando con ajax para recargar ciertas zonas de la pagina, por ejemplo en una tabla tenia varios enlaces con la clase "editar" a los cuales estaba asociado un evento click con jquery, el problema surge cuando con ajax recargo esa parte y muestro otros enlaces distintos pero con la misma clase "editar", el script de jquery ya no los reconoce aun teniendo la misma clase, y solo funcionaria si recargo el script (cosa que no se muy bien como hacer).

Algun consejo sobre como puedo hacer para que jquery siga funcionando con nuevos elementos traidos con ajax, o algo estoy haciendo mal.

Saludos

  #2 (permalink)  
Antiguo 03/11/2011, 14:05
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: curiosidad con jquery

Usa el método live, tengo entendido que añade el evento a HTML y después usa la propagación de eventos para averiguar cuál fue el elemento, en este caso, clickeado. Así no debes preocuparte si añades elementos nuevos al DOM.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 03/11/2011, 15:08
Avatar de abermejo  
Fecha de Ingreso: julio-2011
Mensajes: 20
Antigüedad: 12 años, 9 meses
Puntos: 6
Respuesta: curiosidad con jquery

Gracias no sabia sobre live, de esa manera el evento permanece para todos los elementos nuevos que agregue, ya solucione mi problema =)

  #4 (permalink)  
Antiguo 03/11/2011, 21:53
Avatar de DrFaust  
Fecha de Ingreso: septiembre-2011
Ubicación: Buenos Aires
Mensajes: 308
Antigüedad: 12 años, 7 meses
Puntos: 87
Respuesta: curiosidad con jquery

La función Live es sin duda la solución correcta. +1 a _cronos2.

Lo que decís sobre "recargar el script" es útil en determinadas circunstancias, y se hace de la siguiente manera:

Código:
function agregarEventoClick() {
    $(".clase").unbind("click");
    $(".clase").click(function() {
        alert("¡Hola, mundo!");
    });
}
Esa función elimina todos los eventos de click de la class y los vuelve a crear. Tendrías que llamarla desde el evento $(document).ready(), y desde cualquier otro código que agregue elementos de esa class.
__________________
Desarrollador web profesional
  #5 (permalink)  
Antiguo 04/11/2011, 11:07
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: curiosidad con jquery

Con "live" se puede hacer pero se recomienda "delegate":
Porqué no debemos usar nunca JQuery Live
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España

Etiquetas: ajax, curiosidad, funcion
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:09.