Salut,
ton problème m'a poussé à chercher une solution: je ne sais pas si c'est très exactement ce que tu cherches, mais voilà ce que j'ai fait: je l'ai testé avec Firefox, IE6 et même Opera et ça fonctionne dans les trois cas:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Menu dynamiques en JavaScript</title>
<script language="JavaScript" type="text/JavaScript">
// Fonction pour afficher ou masquer les liens
function Links(montre, id)
{
var cache = setTimeout("document.getElementById("+ id +").style.visibility='hidden';", 1800);
if(montre==0)
{
document.getElementById(id).style.visibility='hidden';
clearTimeout(cache);
}
if(montre==1)
{
document.getElementById(id).style.visibility="visible";
}
}
</script>
</head>
<body>
<div id="liens_A" style="position:absolute; left:100; top:100; visibility:hidden;" onMouseover="javascript:Links(1, 'liens_A');" onMouseout="javascript:Links(0, 'liens_A');">
<ul>
<li><a href="#" class="" title="">Liens A-1</a></li>
<li><a href="#" class="" title="">Liens A-1</a></li>
<li><a href="#" class="" title="">Liens A-3</a></li>
<li><a href="#" class="" title="">Liens A-4</a></li>
<li><a href="#" class="" title="">Liens A-5</a></li>
</ul>
</div>
<div id="liens_B" style="position:absolute; left:150; top:100; visibility:hidden;" onMouseover="javascript:Links(1, 'liens_B');" onMouseout="javascript:Links(0, 'liens_B');">
<ul>
<li><a href="#" class="" title="">Liens B-1</a></li>
<li><a href="#" class="" title="">Liens B-1</a></li>
<li><a href="#" class="" title="">Liens B-3</a></li>
<li><a href="#" class="" title="">Liens B-4</a></li>
<li><a href="#" class="" title="">Liens B-5</a></li>
</ul>
</div>
<div id="liens_C" style="position:absolute; left:200; top:100; visibility:hidden;" onMouseover="javascript:Links(1, 'liens_C');" onMouseout="javascript:Links(0, 'liens_C');">
<ul>
<li><a href="#" class="" title="">Liens C-1</a></li>
<li><a href="#" class="" title="">Liens C-1</a></li>
<li><a href="#" class="" title="">Liens C-3</a></li>
<li><a href="#" class="" title="">Liens C-4</a></li>
<li><a href="#" class="" title="">Liens C-5</a></li>
</ul>
</div>
<a href="#" onMouseover="javascript:Links(1, 'liens_A');javascript:Links(0, 'liens_B');javascript:Links(0, 'liens_C');" class="menu">Liens A</a>
<a href="#" onMouseover="javascript:Links(0, 'liens_A');javascript:Links(1, 'liens_B');javascript:Links(0, 'liens_C');" class="menu">Liens B</a>
<a href="#" onMouseover="javascript:Links(0, 'liens_A');javascript:Links(0, 'liens_B');javascript:Links(1, 'liens_C');" class="menu">Liens C</a>
</body>
</html>
Alors petit détail : dans les menus de base, j'ai supprimé l'évènement onMouseOut : en principe, ces liens-là ne sont là que pour faire apparaître les sous-menus : si donc tu survoles avec ta souris un des menus de base et qu'après ton pointeur ne touche pas le sous-menu qui apparaît, il n'y a pas de time-out, mais je pars du principe qu'on cherche un lien dans une page et donc qu'on pointera naturellement vers un des choix: en quittant ce sous menu, il disparait: si on survole alternativement les menus de base on fait apparaître alternativement les sous-menus correspondant sans time-out : en fait, le time-out ne sert qu'à laisser le temps entre le choix primaire et la sélection secondaire, autrement, il n'a pas vraiment de raison d'être.
Voilà, à défaut d'être LA réponse attendue, peut-être y trouveras-tu des pistes de solution pour ce que tu veux exactement faire.