Foros del Web » Programando para Internet » Jquery »

evitar re-llamada a pagina con animaciones

Estas en el tema de evitar re-llamada a pagina con animaciones en el foro de Jquery en Foros del Web. Hola a todos. Vengo un tiempo teniendo el siguiente problema: A traves de un link traigo una página a cierta parte de la pantalla. Esta ...
  #1 (permalink)  
Antiguo 02/10/2012, 08:32
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
evitar re-llamada a pagina con animaciones

Hola a todos.
Vengo un tiempo teniendo el siguiente problema:

A traves de un link traigo una página a cierta parte de la pantalla. Esta página en realidad es un "archivo completo.php" con php,js y html.

Código Javascript:
Ver original
  1. function menuPrincipal(php,query){
  2.     $.get(php+'.php', function(resultado){
  3.         $('div#P22').html(resultado);
  4.         $.getScript(query+'.js');
  5.     });
  6. }

La página que traigo tiene entre su codigo js, cierta parte dedicada a realizar una animación inicial nada mas cargarse.

Código Javascript:
Ver original
  1. ...
  2. function avisoMens (a){
  3.     var t = setTimeout(function(){
  4.         var noticia = $("<div class='aviso-"+colorMens[a]+"'></div>").html(txtMens[a]);
  5.         var cuadro = $('<div></div>').addClass('notice-item-wrapper').
  6.                                     animate({opacity:'show'},1000).
  7.                                     append(noticia);
  8.         var contenedor = $("#cuadro-"+sitioMens[a]+"-jugador").append(cuadro);
  9.  
  10.         var equis = $('<div></div>').addClass('notice-item-close').
  11.                                     prependTo(noticia).
  12.                                     html('&times').
  13.                                     click(function(){
  14.                                         eliminarMens(noticia);
  15.                                     });
  16.  
  17.         function eliminarMens(lugar){
  18.             lugar.animate({opacity:'0'},600,function(){
  19.                 lugar.parent().animate({height:'0px'},300,function(){
  20.                     lugar.parent().remove();
  21.                 });
  22.             });
  23.         }
  24.     },tini+100);
  25.     tini=tini+100;
  26. }
  27.  
  28. for(i=0;i<7;i++){
  29.     if(numMens[i]>0)
  30.         {avisoMens(i);}
  31. }
  32. ...

Hasta aquí todo funciona correctamente. El problema viene si hago varios clicks "rapidos". En este caso la página se comienza a cargar todas las veces, pero como aun no ha dado tiempo de realizar la animación, esta se realiza tantas veces como clicks he hecho, al final del todo (en la última carga).....y no hay manera de arreglarlo.

Me suena muchísimo a que tengo que utilizar el método stop() pero no lo consigo.

Muchas gracias.
  #2 (permalink)  
Antiguo 03/10/2012, 00:36
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: evitar re-llamada a pagina con animaciones

bueno creo que en tu ajax de jquery debes poner entonce en sincrono, para esto agrega este parametro al ajax del jQuery

Código Javascript:
Ver original
  1. async:true

OJO que al realizar esto cada petición se realizara después de haber terminado una de la otra

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Etiquetas: Ninguno
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:01.