Bonjour TLM,
je déclenche des fonctions javascript sur mon site perso en utilisant la fonction eval, qui évalue une chaine de caractère qui attache des écouteurs aux balises 'lmenu'+i.
Pour passer des paramètres j'ai fait plusieurs fonctions 'tata'+i et 'tatta'+i, chaque fonction ayant les paramètres correspondants.
Après de nombreux tests, je voulais savoir si c'est pas possible de simplifier tout ça, et si c'est possible de sélectionner chaque balise <dl> plutôt que de devoir associer un id 'lmenu1' par exemple comme j'ai fait.
toute proposition est la bienvenue
Modifié par ChrisG (20 Jul 2006 - 01:03)
je déclenche des fonctions javascript sur mon site perso en utilisant la fonction eval, qui évalue une chaine de caractère qui attache des écouteurs aux balises 'lmenu'+i.
Pour passer des paramètres j'ai fait plusieurs fonctions 'tata'+i et 'tatta'+i, chaque fonction ayant les paramètres correspondants.
Après de nombreux tests, je voulais savoir si c'est pas possible de simplifier tout ça, et si c'est possible de sélectionner chaque balise <dl> plutôt que de devoir associer un id 'lmenu1' par exemple comme j'ai fait.

function montre(smenu,menu) {
var smenu = document.getElementById(smenu);
var menu = document.getElementById(menu);
for (var i = 0; i<8; i++) {
if (document.getElementById('smenu'+i)) {
document.getElementById('smenu'+i).style.display='none';
document.getElementById('menu'+i).style.backgroundColor='#ad3329';
document.getElementById('menu'+i).style.color='white';
}
}
if (smenu) {smenu.style.display='block';}
if (menu) {menu.style.color='#ad3329';menu.style.backgroundColor='white';}
}
function tata0 () {montre('smenu0','menu0');}
function tata1 () {montre('smenu1','menu1');}
function tata2 () {montre('smenu2','menu2');}
function tata3 () {montre('smenu3','menu3');}
function tata4 () {montre('smenu4','menu4');}
function tata5 () {montre('smenu5','menu5');}
function tata6 () {montre('smenu6','menu6');}
function tata7 () {montre('smenu7','menu7');}
function ttata0 () {montre();}
function ttata1 () {montre();}
function ttata2 () {montre();}
function ttata3 () {montre();}
function ttata4 () {montre();}
function ttata5 () {montre();}
function ttata6 () {montre();}
function ttata7 () {montre();}
function toto () {
for (var i = 0; i<8; i++) {
if (window.addEventListener) {
chaine1='document.getElementById(\'lmenu'+i+'\')\.addEventListener(\'mouseover\', tata'+i+', false)';
chaine2='document.getElementById(\'ssmenu'+i+'\')\.addEventListener(\'mouseout\', ttata'+i+', false)';
eval(chaine1);
eval(chaine2);
}
else if (window.attachEvent) {
chaine1='document.getElementById(\'lmenu'+i+'\')\.attachEvent(\'onmouseover\', tata'+i+')';
chaine2='document.getElementById(\'ssmenu'+i+'\')\.attachEvent(\'onmouseout\', ttata'+i+')';
eval(chaine1);
eval(chaine2);
}
}
}
if (window.addEventListener) {
window.addEventListener('load', montre, false);
window.addEventListener('load', toto, false);
}
else if (window.attachEvent) {
window.attachEvent('onload', montre);
window.attachEvent('onload', toto);
}
toute proposition est la bienvenue

Modifié par ChrisG (20 Jul 2006 - 01:03)