2011-07-21 5 views
0

J'ai ce problème. J'ai un menu coulissant (3 niveaux) et quand je croise plusieurs menus rapides avec la souris, il glisse de haut en bas plusieurs fois. Je sais que la fonction jQuery .stop() répare cela mais je ne sais pas comment l'utiliser.jQuery menu coulissant - .stop()

Je possède ce code jquery:

$(document).ready(function(){ 
    $('menu li').hover(function() { 
     $(this).find('ul.menu2').slideDown().end().find('a.prvy').css('backgroundPosition','bottom center'); 
     var width = $(this).find('ul.menu2').css("width"); 
     $(this).find('ul.menu2 li ul.menu3').css("left",width); 
     $(this).find('ul.menu2>li').hover(function() { 
      $(this).find('ul.menu3')).fadeIn().end().find('div.text').addClass('activ'); 
     }, function() { 
      $(this).find('ul.menu3').fadeOut().end().find('div.text').removeClass('activ'); 
     }); 

    }, function() { 
     $(this).find('ul.menu2').slideUp(300).end().find('a.prvy').css('backgroundPosition','top center'); 
    }); 
}); 

J'essaye somethink aime:

$('menu li').stop(false,true).hover(function() { 

OU

$('menu li').stop(true,true).hover(function() { 

Mais cela ne fonctionne pas.

Merci pour vos réponses et désolé pour mon anglais.

+1

Lorsque vous obtenez une réponse correcte s'il vous plaît marquer comme accepter, il va bénéficier à d'autres googleurs et le répondeur aussi ... – Rafay

Répondre

1

Vous devez appeler l'arrêt dans vos fonctions de survol.

$(document).ready(function(){ 
    $('menu li').hover(function() { 
     $(this).find('ul.menu2').stop(... 
    }, function() { 
     $(this).find('ul.menu2').stop(... 
    }); 
}); 

mise à jour basée sur d'autres commentaires @ tfbox:

Vous voulez appeler stop avec true, true puisque vous utilisez fadeIn et fadeOut. Si vous ne voulez pas sauter à la fin, vous ne pouvez pas les utiliser et vous devez plutôt utiliser fadeTo.

+0

Supprimé mon poste, ça a été une longue journée lol. Surpris j'ai raté ça. – daryl

+0

J'utilise stop (vrai, vrai) comme tu dis. Mais rien ne s'est passé. http://scooter-racing.eu/neweb/ – Darkry

+0

Mis à jour ma réponse. Vous devez appeler stop sur l'élément que vous animez. '$ (this) .find ('ul.menu2')' –