Partage
  • Partager sur Facebook
  • Partager sur Twitter

cacher un div

pour l'affichage d'un autre

Sujet résolu
    5 juin 2009 à 11:30:10

    Salut les zeros,

    J'ai peu de connaissance en javascript, et si ça ne devait être QUE cacher un div lors de la demande d'affichage d'un autre, ça irai, mais le contexte est un peu différent.

    J'ai un script
    <script>
    			function visible(thingId) 
    			{ 
    			var targetElement; 
    			targetElement = document.getElementById(thingId) ; 
    			if (targetElement.style.display == "none" ) 
    			{ 
    			targetElement.style.display = "" ; 
    			} else { 
    			targetElement.style.display = "none" ; 
    			} 
    			}
    			setTimeout("visible('aide')",7000);
    		</script>
    

    qui me permet d'afficher/masquer un div défini, ça grace à un bouton, j'ai plusieurs bouton et j'aimerai qu'en cliquant su n'importe lequel des boutons, tout div visible deviennent invisible et que juste celui choisit devienne visible, mon code pour appeller la fonction est tout bête,
    <button OnClick="visible('option_1')" class="purple">Modèle de page</button>
    

    par exemple.
    Est ce qu'on peut faire un truc genre
    <button OnClick="cacher('option_1,option_2,....'), visible('option_1')" class="purple">Modèle de page</button>
    

    sur tout les boutons où la fonction cacher serait juste quelque chose comme:
    <script>
    			function cacher(thingId) 
    			{ 
    			var targetElement; 
    			targetElement = document.getElementById(thingId) ; 
    			if (targetElement.style.display == "" ) 
    			{ 
    			targetElement.style.display = "none" ; 
    			} 
    			}
    		</script>
    


    Je rappelle hein, je n'y connais rien, j'essaye de deduire ^^
    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2009 à 11:33:10

      function afficher(id){
          var tabDiv=document.getElementById('cacheCache').getElementsByTagName('div');
          for(var i=0;i<tabDiv.length;i++){
              if(tabDiv[i].id==id){
                  tabDiv[i].style.display='block';
              }else{
                  tabDiv[i].style.display='none';
              }
          }
      }
      

      Affiche la div dont on passe l'id en paramètre, cache toutes les autres
      • Partager sur Facebook
      • Partager sur Twitter
        5 juin 2009 à 11:43:33

        Citation : k1rby

        function afficher(id){
            for(var i=0;i<document.getElementsByTagName('div').length;i++){
                if(document.getElementsByTagName('div')[i].id==id){
                    document.getElementsByTagName('div')[i].style.display='block';
                }else{
                    document.getElementsByTagName('div')[i].style.display='none';
                }
            }
        }
        


        Affiche la div dont on passe l'id en paramètre, cache toutes les autres



        Merci ;)
        Ça marche niquel, mais peu être un peu trop, en lisant ton code, je me suis douté de quelque chose, il demande à ce que TOUT les autres div soient cachés, mais ma page en contient plusieurs autres... qui ne sont pas des option_X!
        Je me retrouve donc avec une page blanche au clic du bouton...
        Une idée pour empecher ça? on ne peut pas faire une sorte d'array en javascript pour lister les div qu'il doit cacher?
        • Partager sur Facebook
        • Partager sur Twitter
          5 juin 2009 à 11:45:20

          Citation : hornetovore

          tout div visible deviennent invisible et que juste celui choisit devienne visible


          Moi j'ai fait ce que tu as dit :-°

          Je vais éditer mon code, tout ce que a à faire c'est de mettre les div à cacher/afficher dans une div avec un id ("cacheCache" dans mon code)

          Edit: voilà, code mis à jour.
          • Partager sur Facebook
          • Partager sur Twitter
            5 juin 2009 à 11:48:33

            Mais si je les regroupe dans un div global, tout le div sera caché, ok jusque là mais l'affichage de celui demandé, il se fera lui si son div parent est invisible? :euh:

            EDIT: je crois comprendre
            tu dis de choisir TOUT les div DU div untel..., ce seront donc les div inclu dedans qui seront caché et non pas le div parent
            • Partager sur Facebook
            • Partager sur Twitter
              5 juin 2009 à 11:49:53

              Citation : k1rby

              Je vais éditer mon code


              Je suis pas con non plus ~~
              Bien sûr que le parent ne sera pas invisible, le but du parent est "délimiter" la zone où se trouvent les div à cacher ou montrer
              • Partager sur Facebook
              • Partager sur Twitter
                5 juin 2009 à 11:51:31

                J'ai édité, excuse moi ^^ je ne doute pas de tes capacités ^^
                J'essaye de comprendre en même temps en fait, à quoi bon demander si on n'y comprend pas plus au final ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  5 juin 2009 à 11:55:24

                  A en juger par ton edit, tu as exactement compris le code :)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  cacher un div

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown