2012-06-19 5 views
1

J'utilise ceci sur une image de vol stationnaire:jquery vol stationnaire propagation

$('.img-style').hover (function(e) { 
    var prixPlus = $(this).closest('a').attr('data-prix'); 
    prixPlus = parseFloat(prixPlus); 
    var prixNew = prix + prixPlus; 

    $('#chgePrix').html(prixNew.toFixed(2)); 
    $('#txtapart').fadeTo('fast', 0.1); 
}, function(e) { 
    $('#chgePrix').html(prix.toFixed(2)); 
    $('#txtapart').fadeTo('fast', 1); 
}); 

Mais si je passe rapidement la souris 2 fois ou plus sur l'image, $ ('# txtapart') fade in et out 2 ou plusieurs fois! Comment puis-je arrêter la propagation de fondu?

Merci pour votre aide ...

+0

Il fait ce que vous voulez, mais trop vite? – jcolebrand

+0

Cet extrait fonctionne très bien mais si je passe 10 fois la souris sur l'image rapidement ... J'ai besoin de l'arrêt FADE si je ne suis plus sur l'image (désolé pour mon anglais!) – Chris

Répondre

2

utilisation stop() méthode

$('#txtapart').stop(true,true).fadeTo('fast', 0.1); 

Cette forces d'animation avant la fin. Les deux arguments true effacent la file d'attente et définissent l'animation à son point final, de sorte que la nouvelle animation puisse commencer immédiatement lorsqu'un autre événement est troqué.

http://api.jquery.com/stop/

+0

Parfait! Merci beaucoup ;-) – Chris

0

La fonction devient appelée à chaque passage de la souris. Il n'y a pas de bon moyen de détecter si une fonction est déjà en cours d'exécution en Javascript.

+1

pas vrai dans les animations jquery, plusieurs façons pour détecter si l'animation est en cours, y compris 'is (': animated')' – charlietfl