1 fonction et double action

Eléphant du PHP | 291 Messages

16 sept. 2006, 15:20

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 sept. 2006, 16:18

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>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 291 Messages

16 sept. 2006, 16:30

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