Code compatible IE mais fonctionne mal sous FireFox
Bonjour,
j'ai un code qui fonctionne très bien sous IE mais qui pose problème sous FireFox.
Il s'agit d'un menu déroulant ascenseur, donc sous IE on clique sur un menu il se dépile et ensuite on sélectionne le sous menu sans problème.
Sous FireFox on sélectionne le menu il se dépile et lorsque l'on sélectionne le sous menu on a le menu qui se remplie sans rien faire.
Je pense donc qu'il y a un problème de compatibilité dans la dernière partie du code "selectionSsMenu()".
Merci par avance pour votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
|
// Variables globales :
// - Menu principal horizontal
var idPrecedent;
var idDevantPrec;
var idSsEltPrecedent;
// - Item sous-menu horizontaux
var idItSsMenuPrec;
// - Item sous-menu verticaux
var idSsMenuPrec;
/******************************************************************************/
/*
/* FONCTION : montre()
/*
/* UTILISE DANS : menu_horizontal.html
/*
/* EXPLICATIONS : Cinématique du menu horizontal.
/*
/* PARAMETRES : idSsElement : ID sous-menu (obligatoire)
/* idElement : ID item du menu principal (obligatoire)
/* idElementDevant : ID item du menu principal à gauche
/* de 'idElement' (non obligatoire)
/*
/* MODIFICATIONS :
/******************************************************************************/
function montre(idSsElement,idElement,idElementDevant)
{
var SsElementUl = document.getElementById(idSsElement);
var ElementUl = document.getElementById(idElement);
var ElementUlPrec = document.getElementById(idPrecedent);
var SsElementUlPrec = document.getElementById(idSsEltPrecedent);
var ElementUlDevant = document.getElementById(idElementDevant);
var ElementUlDvtPrec = document.getElementById(idDevantPrec);
// Initialisation
if (SsElementUlPrec && ElementUlPrec)
{
SsElementUlPrec.style.display='none'; //on l'efface
ElementUlPrec.className='';
if(ElementUlDvtPrec)
{
ElementUlDvtPrec.className='';
}
}
// Affiche
if (SsElementUl && ElementUl)
{
SsElementUl.style.display='block'; //on l'affiche
ElementUl.className='selected';
if(ElementUlDevant)
{
ElementUlDevant.className='beforeselected';
}
}
// Variables précédentes (globales)
idPrecedent = idElement;
idSsEltPrecedent = idSsElement;
idDevantPrec = idElementDevant;
}
/******************************************************************************/
/*
/* FONCTION : selectionner()
/*
/* UTILISE DANS : menu_horizontal.html
/*
/* EXPLICATIONS : Selectionne un item de sous-menu (souligne en rouge).
/*
/* PARAMETRES : idItSsMenu : ID item sous-menu (obligatoire)
/*
/* MODIFICATIONS :
/******************************************************************************/
function selectionner(idItSsMenu)
{
var EltItSsMenu = document.getElementById(idItSsMenu);
var EltItSsMenuPrec = document.getElementById(idItSsMenuPrec);
// Déselectionner
if(EltItSsMenuPrec)
{
EltItSsMenuPrec.className='';
}
// Selection
if(EltItSsMenu)
{
EltItSsMenu.className='selected';
}
// Item sous-menu précédent
idItSsMenuPrec = idItSsMenu;
}
/******************************************************************************/
/*
/* FONCTION : deroule()
/*
/* UTILISE DANS : menu_vertical.html
/*
/* EXPLICATIONS : Déroule les sous-menus.
/*
/* PARAMETRES : idMenu : ID menu (obligatoire)
/* idSsMenu : ID sous-menu (non obligatoire)
/*
/* MODIFICATIONS :
/******************************************************************************/
function deroule(idMenu, idSsMenu)
{
var EltMenu = document.getElementById(idMenu);
var EltSsMenu = document.getElementById(idSsMenu);
// Ouvre
if(EltMenu && EltMenu.className != 'ouvert selected')
{
EltMenu.className='ouvert selected';
if(EltSsMenu)
{
EltSsMenu.style.display='block';
}
}
// Ferme
else if(EltMenu && EltMenu.className == 'ouvert selected')
{
EltMenu.className='ferme';
if(EltSsMenu)
{
EltSsMenu.style.display='none';
}
}
}
/******************************************************************************/
/*
/*
/* FONCTION : selectionSsMenu()
/*
/* UTILISE DANS : menu_vertical.html
/*
/* EXPLICATIONS : Sélectionne un sous-menus.
/*
/* PARAMETRES : idSsMenu : ID sous-menu (obligatoire)
/*
/* MODIFICATIONS :
/******************************************************************************/
function selectionSsMenu(idSsMenu)
{
var EltSsMenu = document.getElementById(idSsMenu);
var EltSsMenuPrec = document.getElementById(idSsMenuPrec);
// Ouvre
if(EltSsMenu)
{
EltSsMenu.className='selected';
}
if(EltSsMenuPrec && (EltSsMenu != EltSsMenuPrec))
{
EltSsMenuPrec.className='';
}
// Gestion précédents
idSsMenuPrec = idSsMenu;
// Empêche la propagation de l'évènement
window.event.cancelBubble = true;
} |