Onmouseover/out sur div avec IE8
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:
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étalliques</a><br />
<a href="nos-prestations-serrurrerie.php" class="lien_presta">Serrurrerie</a>
</div>
</a> |
ensuite le javascript showhide()
Code:
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:
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