2010-11-22 5 views
0

Avoir un problème avec l'un de mes scripts. L'animation continue de faire la queue. J'ai cherché vos solutions sur vos forums. J'ai essayé stop (true, true) et quelques variantes de cela ainsi que queue: false.Problèmes de file d'attente JQuery

Peut-être que je viens de le mettre au mauvais endroit, je ne suis pas encore à 100% à l'aise avec jQuery.

La fonction ressemble à ceci pour le moment;

jQuery(document).ready(function($) { 
    $('div.wp-caption').each(function(i) { 

     var img_ = $('img', this);   
     var img_height = img_.attr('height'); 
     var p_height = $('p', this).outerHeight(); 

     $(this).height(img_height); 

     $(this).hover(function() { 
      img_.animate({marginTop : -p_height}, 500); 
     }, function() { 
      img_.animate({marginTop : '0'}, 500); 
     });     
    });  
}); 

Répondre

3

stop() devrait fonctionner très bien si vous mettez avant la méthode .animate():

$(this).hover(function() { 
    img_.stop().animate({marginTop : -p_height}, 500); 
}, function() { 
    img_.stop().animate({marginTop : '0'}, 500); 
}); 
+0

Merci beaucoup, a travaillé comme un charme! – user516144

1

Essayez d'effacer la file d'attente d'animation:

  $(this).hover(function() { 
       img_.stop(true, true).animate({marginTop : -p_height}, 500); 
      }, function() { 
       img_.stop(true, true).animate({marginTop : '0'}, 500); 
      }); 

Les true, true arguments indiquent jQuery pour effacer la file d'attente et sautez à la fin de l'animation.

+0

Nice one! Cela va sûrement être utile. =) – user516144

1

Essayez de mettre le .stop() avant que les .animate

$(this).hover(function() { 
    img_.stop().animate({marginTop : -p_height}, 500); 
}, function() { 
    img_.stop().animate({marginTop : '0'}, 500); 
}); 
+0

À la votre! Merci de contribuer. – user516144