2010-11-17 5 views
1

Y at-il un moyen d'éviter les problèmes avec slideToggle de jQuery()?jQuery toggle glitch

J'ai un menu coulissant horizontal quand quelqu'un survole un lien il ya une liste slideToggling ci-dessous.

Le point est quand je passe ma souris sur le lien avant que jQuery se charge - tout fonctionne de manière opposée. Le menu disparaît lorsque je planer et montre quand le pointeur est ailleurs. Donc, le menu est inutile.

est ici le code jQuery:

$('#nav li').hover(function(){ 
$(this).children('ul').slideToggle(); 

})

Peut-être que quelques coditionals, quelque chose comme "si nav li plané et ul est invisible puis à nouveau une fois slideToggle"? Mais je ne suis pas sûr de savoir comment l'écrire.

Merci beaucoup.

Répondre

2

Pour être sûr ici (indépendamment de la position de la souris initiale), vous devez diviser votre .hover() d'appeler explicitement .slideDown() sur mouseenter et .slideUp() sur mouseleave, comme ceci:

$('#nav li').hover(function(){ 
    $(this).children('ul').slideDown(); 
}, function() { 
    $(this).children('ul').slideUp(); 
}); 
+0

Man. Tu me sauves encore la vie. JE T'AIME!!! : D Et au fait, pourquoi tu ne travailles pas pour Microsoft, Google, etc? – fomicz