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 :

Faire apparaître 2 div d'un coup d'un seul


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut Faire apparaître 2 div d'un coup d'un seul
    Bonjour,

    J'ai deux div cachées que je souhaite afficher en un clic.
    Manque de pot, une seule s'ouvre.

    ça c'est mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function switchMenuForum()
    {
    var formDiv=document.getElementById('Forum');
    if(formDiv.style.display=="none") formDiv.style.display = "";
    else formDiv.style.display= "none";
    }
    Et donc j'ai deux éléments qui ont l'id Forum.

    ==> Le premier dans la page ne s'ouvre pas, mais le second oui.

    Comment faire ?

  2. #2
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function switchMenuForum()
    {
    var formDiv=document.getElementById('Forum');
    if(formDiv.style.display=="none") formDiv.style.display = "block";
    else formDiv.style.display= "none";
    }
    @ tchaOo°

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Salut Kankrelune,

    ça fonctionne pas comme ça, je réexplique:

    J'ai mis le code ci-dessus dans la balise head, le tiens puis le miens.
    J'ai une div qui est cachée par défaut et qui se trouve en haut dans la code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="switchMenuForum" style="display:none;" id="Forum" ></div>
    En dessous dans le code source de la page j'ai une seconde div :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="menuGaucheCateg" onClick="switchMenuForum();">Forum </div>
      <div class="switchMenuForum" style="display:none;" id="Forum" >
    </div>
    C'est quand je clique sur cette seconde div, que les deux doivent s'ouvrir.
    Aussi, que voulais dire block dans ton exemple Kankrelune ?

  4. #4
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    display = "block" => affiche
    display = "none" => affiche pas

    @ tchaOo°

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Bah oui mais ça fonctionne pas.

  6. #6
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!

    Citation Envoyé par psychoBob
    Et donc j'ai deux éléments qui ont l'id Forum.
    Et getElementById ne retourne qu'un seul object et non une collection comme le ferait getElementsByName (note le S de elements).

    Ryan

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Oui en effet, ça parait évident.

    Mais alors j'ai dû faire une faute ailleurs, parce que ça ne fonctionne toujours pas. En fait maintenant, plus rien ne s'ouvre.

    ça c'est ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function switchMenuForum()
    {
    var formDiv=document.getElementsByName('Forum');
    if(formDiv.style.display=="none") formDiv.style.display = "";
    else formDiv.style.display= "none";
    }
    ça c'est la première zone à afficher, en haut dans le code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <div class="switchMenuForum" style="display:none;" name="Forum" >
    Et ça c'est la seconde, et c'est aussi là que l'action doit s'effectuer sur les deux div, donc celle ci-dessus, via le onclick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div class="menuGaucheCateg" onClick="switchMenuForum();">Forum </div>
      <div class="switchMenuForum" style="display:none;" name="Forum" >
    En fait j'ai simplement remplacé id par name dans les div. Mais j'ai aussi essayé avec id et c'est pareil

  8. #8
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function switchMenuForum()
    {
       var formDiv=document.getElementsByName('Forum');
    
       if(formDiv.style.display=="none")
            formDiv.style.display = "block";
                 else 
                    formDiv.style.display= "none";
    }


    @ tchaOo°

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    ouais bah tu peux te moquer mon pote, parce que j'ai essayé et ça foire aussi
    (merci quand même pour le jolie coloriage du code)

    M'enfin ça me fait pas rire c mon script qui foire

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 58
    Par défaut
    Je crois que ton problème est comme 'ryan' dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Et getElementById ne retourne qu'un seul object et non une collection
    Tu ne reçois pas les 2 objects alors forcément que les 2 n'apparaissent pas.

  11. #11
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Bon... reprenons depuis le début... .. .

    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 switchMenuForum() 
    {  
           var maDiv1 = document.getElementById('maDiv1');  
           var maDiv2 = document.getElementById('maDiv2'); 
    
           if(maDiv1.style.display=="none")  
           {
                maDiv1.style.display = "block";  
                maDiv2.style.display = "block";  
           }
           else
           {
                maDiv1.style.display= "none"; 
                maDiv2.style.display= "none"; 
           }
    }
    et pour finir... .. .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="button" value="Click" onClick="javascript:switchMenuForum();" /><br />
    <div class="menuGaucheCateg" style="display:none;" id="maDiv1">Ma div n° 1</div><br />
    <div class="switchMenuForum" style="display:none;" id="maDiv2" >Ma div n° 2</div>

    @ tchaOo°

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    ça fonctionne !

    Et en plus le code est simple à comprendre.

    Mais le résultat me plait pas

    M'enfin ça c'est pas de votre faute. Merci !

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut
    Citation Envoyé par psychoBob
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function switchMenuForum()
    {
    var formDiv=document.getElementsByName('Forum');
    if(formDiv.style.display=="none") formDiv.style.display = "";
    else formDiv.style.display= "none";
    }
    ça c'est la première zone à afficher, en haut dans le code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <div class="switchMenuForum" style="display:none;" name="Forum"  >
    Et ça c'est la seconde, et c'est aussi là que l'action doit s'effectuer sur les deux div, donc celle ci-dessus, via le onclick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div class="menuGaucheCateg" onClick="switchMenuForum();">Forum </div>
      <div class="switchMenuForum" style="display:none;" name="Forum" >
    Normal que ça marche pas , getElementsByName retourne un tableau et pas les elements voici une idée de 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
     
    function switchMenuForum()
    {
    var i;
    var formDiv=document.getElementsByName('Forum');
     
     for(i=0;i<formDiv.length;i++)
     {
     
           if(formDiv[i].style.display=="none") formDiv[i].style.display = "block";
           else formDiv[i].style.display= "none";
      }
     
    }

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

Discussions similaires

  1. Faire apparaître un <div> à la place d'un autre
    Par skyangel20 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 11/01/2008, 09h11
  2. faire apparaître un DIV avec bouton radio
    Par laurent2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/07/2007, 15h00
  3. [JTree] Faire apparaître visuellement le noeud sélectionné
    Par Bobsinglar dans le forum Composants
    Réponses: 3
    Dernier message: 03/06/2005, 16h26
  4. Faire apparaître un champ texte en cliquant sur un select
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2005, 16h16

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