2009-09-22 5 views
0

Je travaille sur un script pour un menu déroulant. Cela fonctionne bien jusqu'à maintenant, mais je dois ajouter une chose de plus et je ne peux pas le comprendre. Voici le script actuel:Besoin d'aide pour corriger ce script dropdown jQuery


$j('ul.menu > li').hover(

    function() { var ulHeight = $j('ul', this).height(); $j(this).children('ul').css({height: 0}).stop().animate({height: ulHeight}, 400); }, 
    function() { $j(this).children('ul').stop().animate({height: 0}, 400); } 
); 

je dois revenir à la hauteur de l'UL à sa taille d'origine, et régler l'affichage sans pareil, il peut fonctionner à nouveau. La façon dont il est maintenant, la hauteur est fixée à 0 à la sortie, la prochaine fois que la « ulHeight » est prise, elle est 0.

Je l'ai essayé comme ça, mais pas de joie:


function() { $j(this).children('ul').stop().animate({height: 0}, 400).css({height: ulHeight}); } 

Quelqu'un a des idées?

+0

pouvez-vous poster une démo sur http://jsbin.com? –

+0

http://jsbin.com/ofaco –

Répondre

1

Vos sous-menus ne s'affichent pas du tout ...

mais finalement, pourquoi réinventer la roue? http://css-tricks.com/simple-jquery-dropdowns/ ou Superfish


La seule chose que je suggère, maintenant que je l'ai regardé votre nouveau code, est de remplacer

.css({"display": "block"}); 
.css({"display": "none"}); 

avec

.show(); 
.hide(); 

respectivement, et vous pouvez utiliser .hover au lieu de .mouseenter et .mouseleave

Check it out here ... Je ne pouvais pas éditer votre code dans jsbin (la fenêtre d'édition avait 3 lignes de haut et je ne pouvais pas faire défiler) donc je l'ai republié à pastebin.

+0

Donc, je peux apprendre à faire moi-même une roue ;-) Les sous-menus que j'ai triés séparément car je voulais qu'ils volent sur le côté plutôt que de haut en bas . Nouvelle démo est en place - tout le monde a des conseils sur le nettoyage de ce code s'il vous plaît puce! http://jsbin.com/oseri –

+0

LOL ok ... J'aime essayer de comprendre les choses par moi-même. La nouvelle version semble fonctionner pour moi sans problème dans Firefox. – Mottie

+0

Cool homme, bravo pour prendre le temps de le traverser. Semble courir un peu plus doux avec ces changements à coup sûr! –

0

La valeur par défaut de la propriété height est auto. Vous devriez le mettre à cela, au lieu de 0, lorsque vous vous cachez.