Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cacher / Montrer plusierus Div

    26 juin 2011 à 17:32:53

    Bonjour,
    Depuis quelques jours je suis confronter à un problème.
    Je n'arrive pas à cacher plusieurs div, c'est à dire,

    Quand je clique sur le div 1 cacher le div 1 mais quand je clique sur le div 2 ferme le div 2 et non pas le div 1
    Voici mon code JS pour comprendre
    <!--// [CDATA[
        function divaffiche(){
          document.getElementById("box_keywords").style.display = "block";
          document.getElementById("cache").style.display = "inline";
          document.getElementById("voir").style.display = "none";
        }
        function divcache(){
          document.getElementById("box_keywords").style.display = "none";
          document.getElementById("cache").style.display = "none";
          document.getElementById("voir").style.display = "inline";
        }
    	function divclose(){
          document.getElementById("box_keywords").style.display = "none";
    	  document.getElementById("box").style.display = "none";
    	  document.getElementById("close").style.display = "none";
          document.getElementById("cache").style.display = "none";
          document.getElementById("voir").style.display = "none";
        }
    
    
    
    
    // ]] -->
    


    Puis dans mon html

    <!--Premier DIV-->
    <div id="box" class="left">
    <span class="_title">
    <b class="box_title"><?php if (isset($box_name)) {     echo $box_name; }else { echo "Sans titre";} ?></b>
    <!--Close-->
    <a  id="close"  onClick="divclose()" style="display:inline;"/>
    	<img  align="right" src="images/button/close.gif" alt="Fermer" title="Fermer" id="close">
    </a>
    <!--Restore-->
    <a   id="voir" 	onClick="divaffiche()" style="display:none;"/>
    	<img  align="right" src="images/button/restor.gif" alt="Restaurer" title="Restaurer">
    </a>
    <!--Minimize-->
    <a  id="cache"  onClick="divcache()" style="display:inline;"/>
    	<img  align="right" src="images/button/minimize.gif" alt="Minimiser" title="Minimiser">
    </a>
    </span>
    <div id="box_keywords">
    <p>5sdsd</p>
    </div>
    </div>
    
    <!--Second DIV-->
    
    <div id="box" class="right">
    <span class="_title">
    <b class="box_title"><?php if (isset($box_name)) {     echo $box_name; }else { echo "Sans titre";} ?></b>
    <!--Close-->
    <a  id="close"  onClick="divclose()" style="display:inline;"/>
    	<img  align="right" src="images/button/close.gif" alt="Fermer" title="Fermer" id="close">
    </a>
    <!--Restore-->
    <a   id="voir" 	onClick="divaffiche()" style="display:none;"/>
    	<img  align="right" src="images/button/restor.gif" alt="Restaurer" title="Restaurer">
    </a>
    <!--Minimize-->
    <a  id="cache"  onClick="divcache()" style="display:inline;"/>
    	<img  align="right" src="images/button/minimize.gif" alt="Minimiser" title="Minimiser">
    </a>
    </span>
    <div id="box_keywords">
    <p>5sdsd</p>
    </div>
    </div>
    


    Ce code s'affiche sous la forme de deux boite cote à cote (avec le css) j'ai mis qu'il soit cote à cote) Pour donner une illusion de boite fenêtrées qui peuvent se fermer.

    +--------------------+ +-------------------+
    |Titre 2 ........._ X| |Titre 1 ........_ X|
    |....................| |...................|
    |....................| |...................|
    +--------------------+ +-------------------+

    Le X représente FERMER (close.gif)et le _ (minimize.gif) Réduire car le X fait completement disparaitre le div alors que le _ cache le contenue et le remplace pare une autre image (restore.gif) restaurer voire l'image restaure de la fenêtre windows.

    Merci à toust ceux qui vont répondre au message
    • Partager sur Facebook
    • Partager sur Twitter
      26 juin 2011 à 17:45:57

      pour faire court un id doit être unique tu as plusieurs fois box,close,voir et cache donc javascript doit prendre le premier à mon avis

      si tu veux faire simple transforme tes id en classe et passe en paramètre de tes fonction l'id du div sur lequel tu veux faire l'action.

      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2011 à 22:30:36

        Pourquoi est-ce que tu ne passerait pas tout simplement le numéro du div en paramètre de tes fonctions ? en ayant rajouter ce numéro à chaque id de div (pour rendre l'id unique).

        <!--// [CDATA[
            function divaffiche(num){
              document.getElementById("box_keywords"+num).style.display = "block";
              document.getElementById("cache"+num).style.display = "inline";
              document.getElementById("voir"+num).style.display = "none";
            }
            function divcache(num){
              document.getElementById("box_keywords"+num).style.display = "none";
              document.getElementById("cache"+num).style.display = "none";
              document.getElementById("voir"+num).style.display = "inline";
            }
        	function divclose(num){
              document.getElementById("box_keywords"+num).style.display = "none";
        	  document.getElementById("box"+num).style.display = "none";
        	  document.getElementById("close"+num).style.display = "none";
              document.getElementById("cache"+num).style.display = "none";
              document.getElementById("voir"+num).style.display = "none";
            }
        
        // ]] -->
        


        <!--Premier DIV-->
        <div id="box1" class="left">
        <span class="_title">
        <b class="box_title"><?php if (isset($box_name)) {     echo $box_name; }else { echo "Sans titre";} ?></b>
        <!--Close-->
        <a  id="close1"  onClick="divclose(1)" style="display:inline;"/>
        	<img  align="right" src="images/button/close.gif" alt="Fermer" title="Fermer" id="close">
        </a>
        <!--Restore-->
        <a   id="voir1" 	onClick="divaffiche(1)" style="display:none;"/>
        	<img  align="right" src="images/button/restor.gif" alt="Restaurer" title="Restaurer">
        </a>
        <!--Minimize-->
        <a  id="cache1"  onClick="divcache(1)" style="display:inline;"/>
        	<img  align="right" src="images/button/minimize.gif" alt="Minimiser" title="Minimiser">
        </a>
        </span>
        <div id="box_keywords1">
        <p>5sdsd</p>
        </div>
        </div>
        
        <!--Second DIV-->
        
        <div id="box2" class="right">
        <span class="_title">
        <b class="box_title"><?php if (isset($box_name)) {     echo $box_name; }else { echo "Sans titre";} ?></b>
        <!--Close-->
        <a  id="close2"  onClick="divclose(2)" style="display:inline;"/>
        	<img  align="right" src="images/button/close.gif" alt="Fermer" title="Fermer" id="close">
        </a>
        <!--Restore-->
        <a   id="voir2" 	onClick="divaffiche(2)" style="display:none;"/>
        	<img  align="right" src="images/button/restor.gif" alt="Restaurer" title="Restaurer">
        </a>
        <!--Minimize-->
        <a  id="cache2"  onClick="divcache(2)" style="display:inline;"/>
        	<img  align="right" src="images/button/minimize.gif" alt="Minimiser" title="Minimiser">
        </a>
        </span>
        <div id="box_keywords2">
        <p>5sdsd</p>
        </div>
        </div>
        


        Tu met le tout dans une boucle php "for" pour créer autant de div que tu veux, avec des <?php echo num?> au lieu des 1 et 2...enfin t'as compris...
        • Partager sur Facebook
        • Partager sur Twitter

        Cacher / Montrer plusierus 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