Afficher / Masquer une Div

Résolu
Denver -  
Steefif Messages postés 526 Statut Membre -
Bonjour à tous,

j'ai besoin d'aide sur une fonction javascript qui me permet d'afficher ou de masque une div.

toutefois j'aimerais que lorsque une div est dors et déjà ouverte et que je décide d'en ouvrir une autre il me ferme la précédente ( je sais pas si je suis clair )

Voici le code qui je pense pourra vous aider

/*
<script>
function visibilite(thingId)
{
var targetElement;
targetElement = document.getElementById(thingId) ;
if (targetElement.style.display == "none")
{
targetElement.style.display = "" ;
} else {
targetElement.style.display = "none" ;
}
}
</script>
*/

Merci d'avance pour votre aide

2 réponses

  1. Steefif Messages postés 526 Statut Membre 19
     
    Perso j'utiliserai quelque chose comme :

    function visibilite(thingId) {  
       var tabDiv= document.getElementsByTagName("div");  
       var n=tabDiv.length;  
       for(i=0;i<n;i++){  
             if(tabDiv[i].id == "thingId")  
             {  
                   tabDiv[i].style.display = "block";  
             }  
             else  
             {  
                   tabDiv[i].style.display = "none";  
             }  
        }  
    } 


    A tester.
    Dis moi si ça plante je regarderai ça mieux que comme ça.

    La vie c'est comme une boite de chocolat, on ne sait jamais sur quoi on va tomber.
    0
    1. Denver
       
      Malheureusement cela ne marche pas
      cela me permet d'afficher la "div " une fois et de bloquer sa fermeture
      mais pas de le fermer automatiquement lorsque j'ouvre une autre "div "
      0
    2. Steefif Messages postés 526 Statut Membre 19
       
      test cette page qui marche chez moi :


      <HTML> 
      
      <HEAD> 
        <META http-equiv='Content-Type' content='text/html; charset=utf-8'>  
        <title>home</title>  
         
      </HEAD> 
      
      
      <body> 
      
       <div id="toto" style="display:none"> 
        toto 
       </div> 
       <div id="titi" style="display:none"> 
        titi 
       </div> 
       <input type="button" value="toto" onclick="visibilite('toto')"/> 
       <input type="button" value="titi" onclick="visibilite('titi')"/> 
      </body> 
      
      </html> 
      


      en fait j'ai mis des guillemets en trop ici : if(tabDiv[i].id == thingId)
      pas de guillemet autour de thingId
      0
    3. Denver
       
      Super ca marche " if(tabDiv[i].id == thingId) "

      1000 mercis a toi
      0
    4. Steefif Messages postés 526 Statut Membre 19
       
      bah de rien =)
      Si tu as d'autres soucis, n'hésite pas
      0
  2. m3allem58 Messages postés 76 Statut Membre
     
    Prenons comme exemple 2 div ayant deux id différents :

    <div id="id1">
    <div id="id2">

    puis ds js; tu ajoutes (étant donné id1 est ouverte , on la ferme et on ouvre id2 )

    document.getElementById('id1').style.display = 'none';
    document.getElementById('id2').style.display = '';

    je l'ai essayé et ça marche.

    A+.
    0