Bonjour à tous,
J'ai mis en place un petit menu déroulant super simple :
un lien avec un onmouseover/out qui appelle une fonction pour afficher/cacher une div (mon déroulant) ... tout bête quoi !
Voici le code, vous comprendrez mieux :
d'abord le menu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<a href="nos-prestations.php" onmouseover="showhide('show');" onmouseout="showhide('hide');" class="liens_vide_blanc">
    <img src="images/puce_menu_blanc.png" alt="presta-on" id="presta" name="presta" border="0" /> NOS PRESTATIONS
    <div id="smenu" class="smenu" onmouseover="showhide('show');" onmouseout="showhide('hide');">
        <a href="nos-prestations-constructions-metalliques.php" class="lien_presta">Constructions m&eacute;talliques</a><br />
        <a href="nos-prestations-serrurrerie.php" class="lien_presta">Serrurrerie</a>
    </div>
</a>
ensuite le javascript showhide()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function showhide(option)
{
    if(option == "show")
    {
        MM_swapImage('presta','','images/puce_menu_vert.png',1);
        document.getElementById('smenu').style.display = "block";
    }
    else
    {
        MM_swapImgRestore();
        document.getElementById('smenu').style.display = "none";
     }
}
enfin le CSS du sous-menu .smenu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
.smenu
{
position: absolute;
top: 28px;
left: 0px;
padding-left: 143px;
width: 160px;
display: none;
z-index: 2;
}
J'ai fais exprès de faire en sorte que la div passe sur le lien texte pour que ce soit le onmouseout de la div qui déclenche le "caché" du menu.
Cette technique fonctionne super bien sur FF mais pas sur IE (6, 7 et 8 ... je parle même plus du 5.5 !!!).
Sur IE8, si je mets (comme c'est le cas) onmouseout="showhide('hide');" dans la balise <a> qui englobe le tout, dès que je sors du mot PRESTATIONS, le sous-menu disparait alors que je suis censé être sur la div et donc avoir déclenché l'apparition du sous-menu, donc il ne devrait pas disparaitre.
Et si j'enlève le onmouseout="showhide('hide');" précédemment cité, ça ne disparait plus du tout, à moins de passer sur un des liens du sous-menu.
En gros, IE réagit comme si le curseur n'était pas sur la div.
Quelqu'un voit-il une erreur dans mon code ou une solution à mon problème svp ?
Merci d'avance