11548 sujets

JavaScript, DOM et API Web HTML5

Grâce à votre site, j'ai réussi à faire un menu déroulant dans mon site web. Mais je ne comprends pas très bien le code javascript que j'ai utilisé et que j'ai trouvé sur votre site:

window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}


Comment ça marche ce code? pourquoi il y a 10 dans le code et pas 13 ou 20 par exemple?

Merci d'avance
mbarekh a écrit :
Comment ça marche ce code? pourquoi il y a 10 dans le code et pas 13 ou 20 par exemple?

Merci d'avance

Bonjour,
10 est arbitraire et correspond au nombre de sous menus . Tu peux en mettre 20 si c'est le cas.
Si tu renseignes l'id onmouseover = montre('smenu2') par éxemple :
1 - le sous-menu sélectionné est mis dans la variable d
2 - avec la boucle for ... , on cache les sous menus smenu1 à smenu10 en leur appliquant style.display='none'
3 - on rends visible d qui est notre smenu2

Au début du script il y a la méthode window.onload=montre ça veux dire que quand la page sera entièrement chargée, les sous menus seront rendus invisibles (à l'origine visibles pour être accessibles )
Explication : quand la fonction montre est sans paramètres, seulement l'action 2 est éxécutée (tout cacher).
J'espère avoir été suffisamment clair Smiley smile
Modifié par chmel (30 Jun 2006 - 23:03)
Bonjour chmel,

Ton explication me semble claire ! Néanmoins j'ai qd même une question : qd je clic sur un sous-menu, j'accède donc à la page en question.
Le pbl : l'ensemble des sous-menus se ferment ! Or je veux que ça reste bloquer pour que l'internaute sache où il se trouve.
Comment puis-je remédier à ce pbl ?!

Merci pour ta réponse.
Bonjour
dmt a écrit :
Bonjour chmel,

Le pbl : l'ensemble des sous-menus se ferment ! Or je veux que ça reste bloquer pour que l'internaute sache où il se trouve.
Comment puis-je remédier à ce pbl ?!

Merci pour ta réponse.

souvent posé Smiley cligne