Faire disparaître une liste de menu déroulant avec onmouseout
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:
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:
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:
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 ! :cry:
J'ai fait pas mal d'essais pour corriger ce bug, mais à chaque fois sans succès ! :-(
A l'aiiiiiide !