IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[HTML] Menu déroulant


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 90
    Points
    90
    Par défaut [HTML] Menu déroulant
    Bonjour,

    J'ai fais un menu déroulant vertical. Quand je clique, sur l'élément 1 du menu, le sous-menu 1 apparait. Mais si je clique sur l'élément 2, le sous-menu 2 apparait, mais le sous-menu 1 reste aussi. Est-il possible de refermer le sous-menu 1 ? J'ai fais pas mal de recherche, mais je ne trouve rien là-dessus (et le lien vers les tutoriaux ne fonctionne pas pour le moment).
    Petite précision : c'est un simple menu html avec appel de fonction javascript (pas de css ou autre !!!!)

    Merci d'avance pour toutes vos réponses et bonne continuation à tous,
    La plus grave maladie du cerveau, c'est de réfléchir.

  2. #2
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    oui, surement tout est possible !
    il faudrait faire un onclick="deroule(sous_menus);close(all_but_sous_menus2)"

    enfin dans ce style, envoit l'adresse de ton script on pourra plus t'aider

  3. #3
    Membre régulier Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 90
    Points
    90
    Par défaut
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Document sans nom</title>
    <script language="JavaScript" type="text/JavaScript">
    <!-- 
    function ShowHide(Div) { 
       if (Div.style.display=='none') { 
         Div.style.display='block'; 
        } 
        else { 
         Div.style.display='none'; 
        } 
      } 
    </script>
    </head>
    <body>
    <a onClick="javascript: ShowHide(sm1)"><b>Menu 1</b></a><br>
              <div id="sm1" style="display: none">
    		  sous-menu 10<br>
    		  sous-menu 11<br>
    		  sous-menu 12<br>
    		  </div>
    <a onClick="javascript: ShowHide(sm2)"><b>Menu 2</b></a><br>
              <div id="sm2" style="display: none">
    		  sous-menu 20<br>
    		  sous-menu 21<br>
    		  </div>
    <a onClick="javascript: ShowHide(sm3)"><b>Menu 3</b></a><br>
              <div id="sm3" style="display: none">
    		  sous-menu 30<br>
    		  sous-menu 31<br>
    		  sous-menu 32<br>
    		  sous-menu 33
    		  </div>
    </body>
    </html>
    Merci pour la réponse si rapide !
    La plus grave maladie du cerveau, c'est de réfléchir.

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function ShowHide(id) { 
     
    for(i=1;i<4;i++){
    calque=document.getElementById("sm"+i);
    if( ("sm"+i)==id){
       if (calque.style.display=='none') { 
         calque.style.display='block'; 
        } 
        else { 
         calque.style.display='none'; 
        } 
      } 
    } else{
    calque.style.display='none'; 
    }
    }
    à quelques fautes près...

  5. #5
    Membre régulier Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 90
    Points
    90
    Par défaut
    ça marche pas ! Y a-t-il quelque chose à modifier au niveau de l'appel de la fonction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a onClick="javascript: ShowHide(sm1)">
    La plus grave maladie du cerveau, c'est de réfléchir.

  6. #6
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    <a onClick="javascript: ShowHide('sm1')">

  7. #7
    Membre régulier Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 90
    Points
    90
    Par défaut
    Merci beaucoup de bien vouloir m'aider, mais ça pose toujours problème ! J'ai regardé côté accolades et y'avait un petit problème au niveau du deuxième else, et sinon, ben actuellement, il n'ouvre que le sous-menu 3 et encore, il ne le referme pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function ShowHide(id) { 
    	for(i=1;i<4;i++){
    		calque=document.getElementById(id);
    		if(("sm"+i)==id){
    			if (calque.style.display=='none') { 
    				calque.style.display='block'; 
    			} else { 
    				calque.style.display='none'; 
    			} 
    		} else {
    			calque.style.display='none'; 
    		}
    	}
    }
    et j'ai bien les '' pour l'appel de mes fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a onClick="javascript: ShowHide('sm1')"><b>Menu 1</b></a><br>
              <div id="sm1" style="display: none">
    		  sous-menu 10<br>
    		  sous-menu 11<br>
    		  sous-menu 12<br>
    		  </div>
    ...
    Désolée de vous embêter !
    La plus grave maladie du cerveau, c'est de réfléchir.

  8. #8
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    function ShowHide(id) {

    for(i=1;i<4;i++){
    calque=document.getElementById("sm"+i);
    if( ("sm"+i)==id){
    if (calque.style.display=='none') {
    calque.style.display='block';
    }
    else {
    calque.style.display='none';
    }
    }
    } else{
    calque.style.display='none';
    }
    }
    savais bien que j'ai une faute

  9. #9
    Membre régulier Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 90
    Points
    90
    Par défaut
    Ca marche !!!! Merci beaucoup !!!!
    La plus grave maladie du cerveau, c'est de réfléchir.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Conception d'apps iOS & Android
    Inscrit en
    Mai 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Conception d'apps iOS & Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Juste pour vous souligner un détail...
    cette procédure est "dangereuse" puisqu'elle appelle à l'inverse de ce qui est affiché en prenant pour acquis que tout est solide mais on est donc pas à l'abris d'allumer 2 menus simultanément, et d'en suite être pris dans une boucle où les menus ne s'effacent plus...
    _______________________
    Faire le Bien et bien le faire
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2007] VBA et html, menu déroulant
    Par podalamina dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 05/02/2013, 14h22
  2. [HTML] menu déroulant html
    Par zebda10r dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/04/2009, 11h47
  3. [HTML] Menu déroulant imbriqué
    Par Mouaiii dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/04/2009, 19h51
  4. [Html] Menu déroulant et dynamique page
    Par plume2lapin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/12/2006, 01h26
  5. [CSS] [HTML] Menu déroulant sur X niveau
    Par SylvainB dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 24/02/2006, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo