[Javascript] Petit problème de menus

Résolu/Fermé
Aurelienjjj Messages postés 3 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 15 novembre 2007 - 9 nov. 2007 à 15:35
Aurelienjjj Messages postés 3 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 15 novembre 2007 - 15 nov. 2007 à 09:39
Bonjour,

Je suis étudiant en informatique, et je suis en train d'apprendre les bases du Javascript, histoire d'être capable de faire du web dynamique et ne pas me reposer à 100% sur les CSS pour l'affichage. Le problème, c'est que je ne connais pas vraiment les bibliothèques du Java !

Donc, d'abord la raison de mon topic: j'ai un petit soucis avec un menu déroulant. J'ai trouvé un script de menu déroulant que j'ai réussi jusque la a bidouiller selon mon envie. Cependant, il reste une petite chose que je n'arrive pas a modifier: J'aimerai que lorsque l'on clique sur un menu déjà ouvert, celui ci se referme. Je n'arrive malheureusement pas a trouvé les fonctions qu'il me manquent, et j'ai beau chercher, je ne trouve pas la solution dans les divers tuto sur lequel j'ai écumé ...

Voila le code Java relatif a mon menu:


<script type=\"text/javascript\">
<!--
window.onload=cache;
function cache() {;
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
}

function montre(id) {
var d = document.getElementById(id);
if (d) { d.style.display='block';} else {d.style.display='none';}
}
//-->
</script>

Voila.
Autre petite chose: ce script me demande de charger cache directement (évidement). Je me demandais si cela pourrais poser un soucis plus tard avec d'autres fonctions a charger (je pense notamment a un script permettant de relever l'heure du serveur)

Voila, je vous remercie d'avance pour les réponses, et si éventuellement quelqu'un avait un quelconque lien vers des tutos sympa de Javascript, je suis toujours prenneur :)

2 réponses

Utilisateur anonyme
14 nov. 2007 à 17:03
Salut!

Remplace ta fonction 'montre' par celle-ci:

function montre(id) { 
  var d = document.getElementById(id); 
  if (d) {
     if(d.style.display == 'block'){
      d.style.display = 'none';
     } else {
      d.style.display = 'block';
    }
  }
 
} 


Je n'ai pas testé masi ça devrait fonctionner.

;-)
HackTrack
0
Aurelienjjj Messages postés 3 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 15 novembre 2007
15 nov. 2007 à 09:39
Ca marche impeccable ;)
Merci!
0