Salut à tous,
J'aurais besoin de votre aide pour gérer un onmouseout sur un menu déroulant. Je m'explique : j'ai un menu déroulant dont voici une portion de code HTML:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<dl>	
  <dt onmouseover="javascript:montre('smenu1');"   onmouseout="javascript:cache('smenu1')";>Métiers</dt>
	<dd id="smenu1">
	  <ul>
	       <li><a href="#">item 1</a></li>
	       <li><a href="#">item 2</a></li>
               <li><a href="#">item 3</a></li>
	  </ul>
        </dd>
</dl>
Quand je fais un rollover sur un item, les sous-menus apparaissent (aucun souci jusque là...). J'ai géré cet événement grâce à une petite fonction javascript :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
window.onload=montre;
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';}
}

J'ai essayé de gérer le onmouseout, pour que les sous-menus disparaissent lorsque le curseur n'est pas dessus, mais ma fonction ne marche pas comme je veux :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function cache(id) {
var d = document.getElementById(id);
	for(var i=1;i<=10;i++) {
		if(d){ //ou if(document.getElementById('smenu'+i))
			document.getElementById('smenu'+i).style.display='none';
		}
	}
}
Quand je fais un rollover sur les sous-menus, ils disparaissent !
J'ai fait pas mal d'essais pour corriger ce bug, mais à chaque fois sans succès ! :-(
A l'aiiiiiide !