Bonjour,
je souhaite faire un menu déroulant avec jquery,
j'ai donc pris dans la doc la fonction slidetoggle,
seulement ça bug, si je passe et repasse plusieurs fois sur le bouton,
je menu s'ouvre et se referme autant de fois que de passage de la souri
et parfois le sous menu reste ouvert.
Je pense que beaucoup ont du avoir ce problème lors de la création de leur premier menu avec slideToggle puisque ça à l'air de fonctionner parfaitement sur beaucoup de sites...
j'ai pas mal cherché et me suis demandé s'il ne fallait pas créer une sorte de délais entre chaque passage de la souris ou encore s'assurer qu'il soit bien refermé pour lancer l'action, bref je me suis posé pas mal de questions à ce sujet et je n'ai toujours pas trouvé de solution correcte.
dans mon javascript j'ai le code suivant qui est assez simple et sorti tout droit de la doc jQuery :
j'en suis même arrivé à directement faire un hide() pour qu'il se referme plus rapidement et ne pas avoir trop de temps entre chaque passage de la souris, ce qui n'est pas du tout mon but au départ.
HEEEEEEELP MEEEE PLEASE !
Modifié par alsaGozar (15 Dec 2010 - 18:38)
je souhaite faire un menu déroulant avec jquery,
j'ai donc pris dans la doc la fonction slidetoggle,
seulement ça bug, si je passe et repasse plusieurs fois sur le bouton,
je menu s'ouvre et se referme autant de fois que de passage de la souri
et parfois le sous menu reste ouvert.
Je pense que beaucoup ont du avoir ce problème lors de la création de leur premier menu avec slideToggle puisque ça à l'air de fonctionner parfaitement sur beaucoup de sites...
j'ai pas mal cherché et me suis demandé s'il ne fallait pas créer une sorte de délais entre chaque passage de la souris ou encore s'assurer qu'il soit bien refermé pour lancer l'action, bref je me suis posé pas mal de questions à ce sujet et je n'ai toujours pas trouvé de solution correcte.
dans mon javascript j'ai le code suivant qui est assez simple et sorti tout droit de la doc jQuery :
$('#topnav ul.menuhor li.menuhor-li').hover(
function() {
$(this).find('ul').slideToggle("fast");
$(this).find('ul.li').animate({ marginLeft: '30px' }, 100);
},
function() {
$(this).find('ul').slideToggle("slow");
$(this).find('ul.li').animate({ marginLeft: '0px' }, 100);
}
);
$('#topnav ul.menuhor li ul').hide();
j'en suis même arrivé à directement faire un hide() pour qu'il se referme plus rapidement et ne pas avoir trop de temps entre chaque passage de la souris, ce qui n'est pas du tout mon but au départ.
HEEEEEEELP MEEEE PLEASE !
Modifié par alsaGozar (15 Dec 2010 - 18:38)