Je rencontre des problèmes avec la méthode jQuery hover.
Voici le code JavaScript concerné:
$("#navigation > li > ul").hide();
$("#navigation > li").hover(
function() {
$(this).children("ul").slideDown(125);
},
function() {
$(this).children("ul").slideUp(125);
}
);
est ici le code HTML correspondant:
<ul id="navigation">
<li><a href="#">Top Level Item #1</a></li>
<li>
<a href="#">Top Level Item #2</a>
<ul>
<li><a href="#">Sub-Menu Item #2-1</a></li>
<li><a href="#">Sub-Menu Item #2-2</a></li>
<li><a href="#">Sub-Menu Item #2-3</a></li>
</ul>
</li>
</ul>
Chaque fois que vous mouseover un élément de niveau supérieur, le sous-menu en elle (le cas échéant) chutera vers le bas avec un joli effet de glissade rapide. Le problème est lorsque vous faites glisser votre souris dans le menu rapidement et gardez votre souris où le menu serait mais ne l'a pas encore atteint: le menu atteindra alors la "fin" de l'animation mouseover et rebondira vers le caché état, et répétez jusqu'à ce que vous supprimiez la souris d'où le menu déroulant serait.
Si je comprends bien le problème, il est parce que la deuxième fonction dans votre appel en vol stationnaire (celui qui est appelé lorsque le pointeur quitte l'élément correspondant) est appelé lorsque vous entrez dans le sous-menu. – inkedmn
Existe-t-il un moyen d'empêcher cela? Je suis encore très nouveau le jQuery, puis-je le forcer à ne pas "mettre en file d'attente" la 2ème fonction de hover jusqu'à ce que le 1er ait fini? – Zack