Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/12/2010, 05:56
sandinosaso
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Jquery no se recarga

Cita:
Iniciado por Lamakun Ver Mensaje
Hola,

soy usuario nulo de Ajax, salvo algunas extensiones (calendarios, emergentes, galerías de imágenes) que miro de adaptar a mis desarrollos en php.

He encontrado un jquery que me gestiona la creación de thumbnails de imágenes, redimensionando y/o recortando horizontal o verticalmente cuando corresponde. Estos thumbnails aparecen en un listado de anuncios, acompañando a cada anuncio y en la primera carga de la página se ejecuta correctamente.

El listado tiene su paginación y la recarga de éste al querer ir a una nueva página se hace vía ajax para evitar que la página completa se recargue. El problema es que en esa recarga vía Ajax ya no se ejecuta el jquery y no me aparecen los thumbnails correctamente.

Inicialmente he pensado que podía deberse a que el evento

$(document).ready(function() {...});

No se ejecuta al recargar vía ajax, sino cuando se recarga la página al completo. Pero el caso es que si pongo un alert javascript junto con esa línea de código, salta en la primera carga pero no en la recarga ajax.

Supongo que el problema debe estar relacionado con el orden en que el navegador lee el código que hace que se salte el <script>..</script> en la recarga ajax.

Supongo igualmente que debe haber una solución no demasiado complicada ya que no creo que sea ninguna rareza que se pueda llamara a métodos de jquery en un html recargado vía ajax.

Espero haberme explicado medianamente. Se agradece cualquier aportación al respecto.

Saludos
El problema que tienes es que lo que recargas con ajax no va a cumplir nada de lo
que pongas dentro de $(document).ready(function() {...}); de la primera pagina...dado que solo aplican a los elementos que se cargan con la primera pagina en el DOm...lo que cargas con ajax no existia en el Dom cuando se ejecuto
$(document).ready(function() {...});...... entiendes porque te pasa lo que te pasa????...

Creo que la opcion si tienes paginado y quieres que las cosas funcionen es usar la funcion $.live() que permite attachar eventos a elementos que no existen aun...

Por ej...
Código:
$('.clase1').live('click', function() {
  // algo cuando hace click
});
Te permite definir un evento para cualquier elemento que tenga class=clase1....de esta forma si cargas algo con ajax y tiene esa clase cuando le hagas click tambien va a responder este codigo...

Bueno busca en google un poco sobre jquery .live y verás de que estoy hablando...
Comenta como te fue!!!!...
Salut!!!!
__________________
Lo maravilloso de aprender algo es que nadie puede arrebatárnoslo.