18041 sujets
Questions générales et questions de débutants
Bonjour supunna,
Dans le tutoriel de Thomas c'est effectivement l'évènement "click" qui gère l'enroulement/déroulement des sous-menus (les codes commentés c'est bien ) :
Si tu souhaites modifier l'évènement déclencheur par le survol de la souris, ceci devrait convenir :
Ou même :
Ceci dit, à titre tout à fait personnel, j'aurai tendance à préférer le click que le survol pour ce type d'action, il me semble que c'est plus "intuitif", mieux ancré dans les habitudes d'utilisation...
Pour tenter de devenir maître Jedi :
Lire la documentation c'est bien
Listes des évènements
Cdt,
Sylvain
Dans le tutoriel de Thomas c'est effectivement l'évènement "click" qui gère l'enroulement/déroulement des sous-menus (les codes commentés c'est bien ) :
// On modifie l'évènement "click" sur les liens dans les items de liste
// qui portent la classe "toggleSubMenu" :
$(".navigation li.toggleSubMenu > a").click( function () {
Si tu souhaites modifier l'évènement déclencheur par le survol de la souris, ceci devrait convenir :
// On modifie l'évènement "hover" sur les liens dans les items
// de liste qui portent la classe "toggleSubMenu" :
$(".navigation li.toggleSubMenu > a").[b]mouseover[/b]( function () {
Ou même :
// On modifie l'évènement "hover" sur les liens dans les items
// de liste qui portent la classe "toggleSubMenu" :
$(".navigation li.toggleSubMenu > a").[b]hover[/b]( function () {
Ceci dit, à titre tout à fait personnel, j'aurai tendance à préférer le click que le survol pour ce type d'action, il me semble que c'est plus "intuitif", mieux ancré dans les habitudes d'utilisation...
Pour tenter de devenir maître Jedi :
Lire la documentation c'est bien
Listes des évènements
Cdt,
Sylvain
Merci pour ta réponse 6l20
J'avais effectivement pensé à tout simplement remplacer click par mouseover (hover fonctionne aussi bien, c'est vrai)… mais mon souci vient de mouseout. Comment l'intégrer ?
Là, je tourne en bourrique remplacer le mouseover par mouseout, évidemment ça ne fonctionne pas, — ce serait trop simple
J'avais effectivement pensé à tout simplement remplacer click par mouseover (hover fonctionne aussi bien, c'est vrai)… mais mon souci vient de mouseout. Comment l'intégrer ?
Là, je tourne en bourrique remplacer le mouseover par mouseout, évidemment ça ne fonctionne pas, — ce serait trop simple
supunna a écrit :
J'avais effectivement pensé à tout simplement remplacer click par mouseover (hover fonctionne aussi bien, c'est vrai)… mais mon souci vient de mouseout. Comment l'intégrer ?
jQuery, pour les gestionnaires d'évènement tels que ses fonctions mouseover ou hover (on préfèrera hover, je crois), permet d'utiliser deux fonctions:
- une lors de l'arrivée du pointeur sur l'élément;
- une deuxième lors de la sortie du pointeur.
La deuxième est appelée un callback dans la documentation de jQuery.
Ceci dit, mon conseil: attendre d'avoir un niveau décent en JavaScript (et donc d'être en mesure de comprendre la documentation de jQuery, pour peu qu'on prenne le temps de la lire) avant de tenter cette modification. D'ici là on aura gagné un peu d'expérience en conception de sites web, et on se rendra compte que remplacer le clic par le survol dans ce type de menu est une connerie ergonomique à ne pas faire.
(Dit autrement: ça va rendre l'usage du menu soit un peu chiant, soit très très chiant. Dans les deux cas, les utilisateurs vont être contents; il est bien connu qu'ils aiment les sites chiants.)
Modifié par Florent V. (06 Nov 2008 - 13:32)
Florent V. a écrit :
D'ici là on aura gagné un peu d'expérience en conception de sites web, et on se rendra compte que remplacer le clic par le survol dans ce type de menu est une connerie ergonomique à ne pas faire.
(Dit autrement: ça va rendre l'usage du menu soit un peu chiant, soit très très chiant. Dans les deux cas, les utilisateurs vont être contents; il est bien connu qu'ils aiment les sites chiants.)
Je cherchais comment le dire mieux que je ne l'ai fait...c'est simple en fait
Thomas D. a écrit :
Salut,
je doute qu'il suffise de modifier l'évènement pour que cela fonctionne. Les sous-menus risquent de disparaître aussi vite qu'ils sont apparus
De plus, tu vas perdre un des principaux avantages de ce menu, qui est la navigabilité au clavier...
Nous sommes d'accord sur le fait que ce ne soit pas la meilleure chose à faire
Concernant la modification de l'évènement, tu es sûr, cela semble pourtant fonctionner, non ?
6l20: ça ne marche pas tout à fait. En passant sur un titre de rubrique, tu déroules le sous-menu placé dessous, mais si tu repasses le pointeur sur le titre de rubrique juste après alors le sous-menu se replie. Il faudrait au moins un test (tester la présence d'une classe, éventuellement) pour vérifier s'il faut dérouler/replier un sous-menu ou ne rien faire.
Florent V. a écrit :
6l20: ça ne marche pas tout à fait. En passant sur un titre de rubrique, tu déroules le sous-menu placé dessous, mais si tu repasses le pointeur sur le titre de rubrique juste après alors le sous-menu se replie. Il faudrait au moins un test (tester la présence d'une classe, éventuellement) pour vérifier s'il faut dérouler/replier un sous-menu ou ne rien faire.
Effectivement
Pourquoi je m'embête moi ?
J'ai voté click au premier tour