2010-03-25 4 views
1

J'ai le code ci-dessous, qui fonctionne bien, il peut être consulté par exemple. Une fois que l'utilisateur a survolé un menu, vous ne pouvez plus le survoler, sauf si la page est actualisée. J'ai l'impression que c'est quelque chose à faire avec ma file d'attente et j'ai essayé .stop() mais ne semble pas fonctionner.jquery clear animation queue

<script type="text/javascript"> 
    $(document).ready(function() 
    { 


     $('li').hover(function() 
     { 

        $(this).children("p.subtext").stop().slideDown();    




      }, 

       function() 
       { 

       $(this).children("p.subtext").stop().animate({height:'0px'},{queue:false, duration:600, easing: 'easeOutBounce'}) 

     }); 





    }); 
    </script> 

Vive

Répondre

10

Dans ce cas, utilisez .stop(true, true)

Ce premier paramètre arrêt indique pour effacer la file d'attente, see here for more info on .stop()

Modifier, pour votre problème de file d'attente:

$('li').hover(function() { 
    $(this).children("p.subtext").slideDown();    
}, function() { 
    $(this).children("p.subtext") 
     .animate({height:'toggle'},{duration:600, easing: 'easeOutBounce'}); 
}); 
+0

Merci d'avoir oublié de dire que j'ai essayé cela et cela n'a fait aucune différence. – Elliott

+0

@Elliott - Vous êtes en train d'animer la hauteur '0px', ce qui la laisse à 0 pixels de hauteur ... donc il n'y a rien à agrandir, essayez de changer cette' 0px' en 'toggle' –

+0

Argh droite, ça marche mais ça marche pour un article dans le menu, vous pouvez le voir sur le lien ci-dessus. Merci encore EDIT - Une fois que vous avez survolé plusieurs fois, ils semblent cesser de travailler. – Elliott