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 :

Afficher/Cacher un sous menu au clic


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 50
    Points : 39
    Points
    39
    Par défaut Afficher/Cacher un sous menu au clic
    Bonjour,
    J'ai un petit (gros) probleme avec ce menu en dev :
    http://www.toutankharton.com/az/

    Je voudrais qu'au clic sur un des menus, son sous menu s'affiche (et si il n'a pas de sous menu, que la page en lien se charge). Si on reclique dessus, je veux que le sous menu se cache. Et finalement si javascript est desactivé, j'aimerais que le menu s'affiche entierement developpé.

    Mon probleme, que vous pouvez donc voir ici : http://www.toutankharton.com/az/ , c'est que lorsque l'on clique sur un menu, le sous menu saffiche et disparait tout de suite !

    Merci d'avance à tous !

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Modifie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<li onclick="javascript:montre('smenu1');"><a href="">Les Dieux &eacute;gyptiens</a>
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<li><a href="javascript:montre('smenu1');">Les Dieux &eacute;gyptiens</a>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    Merci pour cette réponse rapide ! J'ai fait ceci pour permettre de faire un lien pour les navigateurs n'acceptant pas javascript, et ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<li><a href="http://<a href="http://www.developpez.com"" target="_blank">www.developpez.com"</a> onclick="javascript:montre('smenu3');return false">Mon Item</a>
    Par contre, et là je croit que ça vient de mon script même, je n'arrive toujours pas à afficher/masquer au clic. C'est à dire que jaimerais que si on clic une fois, ça déplie le sous menu, et si on reclic, ça le referme... Pour l'instant, il faut cliquer sur un autre lien pour ouvrir un autres sous menu et par la même effacer l'ancien...

    Le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    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';}
    }

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pas testé :
    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
     
    var opened = false;
    function montre(id) {
       for (var i = 1; i<=10; i++) {
          if (document.getElementById('smenu'+i)) {
             document.getElementById('smenu'+i).style.display='none';
          }
       }
       var d = document.getElementById(id);
       if (d) {
          if(opened == d) {
             d.style.display='none';
          } else {
             opened = d;
             d.style.display='block';
          }
       }
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    ça ne change rien...

    J'ai mis à jour le code cependant :
    avec le tient : http://www.toutankharton.com/az/index2.html
    l'ancien : http://www.toutankharton.com/az/

    Je n'y connais rien en javascript, alors je ne peux pas dire pourquoi ton code marche pas. Je croit que tu charge une variable qui dit que par defaut les menus sont fermés, et qu'a chaque action, tu change la variable pour indiquer si le menu est ouvert ou fermé ?

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Comme quoi il faut toujours tester

    alors rajoute opened = false quand tu fermes un menu :
    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
     
    window.onload = montre;
    var opened = false;
    function montre(id) {
       for (var i = 1; i<=10; i++) {
          if (document.getElementById('smenu'+i)) {
             document.getElementById('smenu'+i).style.display='none';
          }
       }
       var d = document.getElementById(id);
       if (d) {
          if(opened == d) {
             opened = false;
             d.style.display='none';
          } else {
             opened = d;
             d.style.display='block';
          }
       }
    }

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par Toutankharton
    Je n'y connais rien en javascript, alors je ne peux pas dire pourquoi ton code marche pas. Je croit que tu charge une variable qui dit que par defaut les menus sont fermés, et qu'a chaque action, tu change la variable pour indiquer si le menu est ouvert ou fermé ?
    opened n'est peut-etre pas bien nommée, mais en gros c'est le menu en cours qui est ouvert. Quand tout est fermé il n'y a pas d'élément ouvert (LaPalisse, me voilà!) donc opened == false.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    ça marche toujours pas
    http://www.toutankharton.com/az/index2.html

    arf ! est-ce au moins faisable ? en tout cas merci pour tes efforts tu c'est pourquoi ça ne veux pas marcher ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    au temps pour moi, j'avais oublié un <script src> qui court circuitais ton code... Merci beaucoup à toi ! Je met mon sujet en resolu

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

Discussions similaires

  1. Menu déroulant : Affichage du sous-menu au clic sur l'onglet
    Par Vinuto dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2015, 00h54
  2. Sous Menu après clic
    Par kadilldév dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/06/2013, 18h15
  3. afficher/cacher un block menu select
    Par momototo38 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/04/2012, 10h06
  4. cacher le sous menu
    Par killua86 dans le forum Forms
    Réponses: 0
    Dernier message: 06/07/2010, 18h33
  5. Afficher/cacher sous menu
    Par tazmania dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/05/2007, 12h42

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