Salut à toutes et tous !

Super Tutoriel, très pratique… Bravo Thomas !
Une simple question toutefois : Comment fait-on pour remplacer le click par un mouseover + mouseout ?

Ma question le trahit : je suis un sous-débutant en javascript Smiley confused

Merci !
Modifié par supunna (05 Nov 2008 - 16:38)
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 Smiley cligne ) :

// 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 Smiley cligne
Listes des évènements Smiley smile

Cdt,
Sylvain
Merci pour ta réponse 6l20 Smiley biggrin

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 Smiley eek remplacer le mouseover par mouseout, évidemment ça ne fonctionne pas, — ce serait trop simple Smiley cligne
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. Smiley lol
(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 Smiley lol
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 Smiley lol

De plus, tu vas perdre un des principaux avantages de ce menu, qui est la navigabilité au clavier...
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 Smiley jap
Pourquoi je m'embête moi ? Smiley rolleyes
J'ai voté click au premier tour Smiley lol