Page 1 sur 1

1 fonction et double action

Posté : 16 sept. 2006, 15:20
par bunk
Bonjour,

j'utilise une fonction pour cacher un element (hide). pour le faire apparaitre il faut cliquer sur un lien et pareil pour re-cacher l'element.

Je voudrais changer l'aparence du lien selon si le div est caché ou non.

Voila ce que j'ai fais et qui ne fonctionne pas :

dans HEAD :

Code : Tout sélectionner

<script language="javascript" type="text/javascript"> var bouton; function hideElement(idElement) { if(document.getElementById(idElement).style.display == 'none') { document.getElementById(idElement).style.display = 'block'; bouton='lien 1'; } else { document.getElementById(idElement).style.display = 'none'; bouton='lien 2'; } } </script>
dans BODY :

Code : Tout sélectionner

<a href="#" onClick="hideElement('hide1');"> <script language="JavaScript" type="text/javascript"> document.write(bouton); </SCRIPT> </a> <br /> <div id="hide1" style="display:none;"> Texte </div>
Ce code à pour résultat de m'afficher : undefined

Pourriez vous m'aider ?
D'avance merci.

Posté : 16 sept. 2006, 16:18
par Truc
La ligne document.write() fonctionne dans le body mais qu'une seule fois lors du chargement de la page. Tu ne changera donc rien juste en modifiant la variable globale.

Par contre tu peux modifier le texte de la balise <a> en passant par innerHTML :
function hideElement(idElement)
{
   if(document.getElementById(idElement).style.display == 'none')
   {
      document.getElementById(idElement).style.display = 'block';
      document.getElementById("lien").innerHTML='lien 1';
   }
   else
   {
      document.getElementById(idElement).style.display = 'none';
      document.getElementById("lien").innerHTML='lien 2';
   }
} 
Le lien :
<a href="#" onclick="hideElement('hide1');" id="lien"> Lien 1 </a>

Posté : 16 sept. 2006, 16:30
par bunk
J'etais en train de lire une doc sur innerHTML, je pensais bien (après lecture) que je devrais utiliser ca.


Merci encore une fois Truc