Bonjour a toutes et a tous,
Je sais que je titre n'est pas très parlant mais je ne sais pas comment expliquer mon problème en quelques mots, le voici:
J'ai un menu dit "accordéon" qui affiche ses enfants (sous-menu) grâce au onmouseover
HTML:
Code js:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <dl> <dt onmouseover="javascript:montre('smenu1');">Menu 1</dt> <dd id="smenu1"> <ul> <li><a href="#">Sous-Menu 1.1</a></li> <li><a href="#">Sous-Menu 1.2</a></li> </ul> </dd> </dl> <dl> <dt onmouseover="javascript:montre('smenu2');">Menu 1</dt> <dd id="smenu1"> <ul> <li><a href="#">Sous-Menu 2.1</a></li> <li><a href="#">Sous-Menu 2.2</a></li> </ul> </dd> </dl>
J'ai rajouté un setTimeout pour la vitesse d'ouverture de ces enfants, tout marche très bien sauf un petit détail, si l'on passe avec sa souris sur le menu entier en moins d'une fraction de seconde après le delay du setTimeout mes sous-menu s'ouvre 1 par 1, se qui est logique vu que l'on appel la fonction a chaque onmouseover.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function montre(id) { var d = document.getElementById(id); for (var i = 1; i<=10; i++) { if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} } if (d) {d.style.display='block';} }
Comment contrer ce problème? La est la question...
Merci pour toute aide, solution...
sd
Partager