Je travaille sur mon propre menu déroulant, voici le code affichant sous-menus cachés:jQuery problème de menu déroulant :)
jQuery('ul li').hover(function(){
jQuery(this).children('ul').stop().show().animate({ opacity: 1 });
}, function() {
jQuery(this).children('ul').stop().animate({ opacity: 0,});
});
Tout fonctionne très bien, mais les sous-menus sont en cours d'affichage non seulement lorsque l'utilisateur passe le parent-lien mais aussi quand survole la zone que les sous-menus invisibles prennent.
Je crois que le ul est caché, mais li est non, donc ('ul li'). Hover les déclenche. Comment éviter cela? C'est diabolique surtout avec des sous-menus à plusieurs niveaux.
Exemple: http://jsfiddle.net/6t523/ (essayez de passer le curseur sur le carré rouge).
[modifier]
Oh mon Dieu, je l'ai remarqué que rien ne se passe lorsque vous passez d'abord le carré rouge. Je ne cache pas les éléments mais je prends seulement l'opacité à 0 avec jQuery. Aaafffff! :)
La question est alors - comment les cacher élégamment? Mon code fonctionnera-t-il dans IE6/IE7/IE8?
Pas besoin de réinventer la roue. Essayez superfish (http://users.tpg.com.au/j_birch/plugins/superfish/) Enregistrez vos pouvoirs ninja pour de plus grandes choses. – bpeterson76