Ma fonction ne s'exécute qu'une fois

Résolu/Fermé
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015 - 8 août 2015 à 10:02
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015 - 9 août 2015 à 16:25
bonjour à tous!
j'ai écrit une fonction javascript qui est sensée changer l'aspect de mon bouton à chaque clic mais elle ne s'exécute qu'une fois!
merci de m'aider!

<button type="button" class="btn btn-default" id="menu-toggle" onclick="toggle_div(this);">
<<
</button>

Voici le bouton en question et maintenant la fonction:

function toggle_div(button)
{
if(button.innerHTML = "<<")
button.innerHTML = ">>";

else

button.innerHTML = "<<";

}

3 réponses

essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 12:21
Merci pour la suggestion! J'utilise aussi bootstrap pour le style, d'où la balise <button></button>
0
jordane45 Messages postés 37253 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 mars 2023 4 551
Modifié par jordane45 le 9/08/2015 à 15:58
Bonjour,

Y'a plusieurs soucis dans ton code.....
1 - Une comparaison d'égalité se fait avec == ou === .... pas un seul "="

2 - innerHTML .. retourne le contenu HTML .. donc.. pour les caractères spéciaux comme les "<" .. ça retourne & lt; (sans espace)

3 - Voici le code corrigé :
<html> 
 <meta charset=UTF-8>
 <head> 
 <title>test</title>
 </head>
  <body>

  <button type="button" class="btn btn-default" id="menu-toggle" onclick="toggle_div(this);"><<</button>
  
  
  </body>
 </html>
 
 <script type="text/javascript">
  function toggle_div(button) {
   var txt = button.innerHTML;
   if(txt == "<<"){
         button.innerHTML = ">>";
   }else{
        button.innerHTML = "<<";
   }
 }
 
 </script>


NB : Il faut remplacer << par & lt; & lt; (sans espaces)

Cordialement,
Jordane
0
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 15:53
Merci Jordane! Je l'essaie tout de suite!!!
0
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 16:02
Non concluant! Le changement d'aspect du bouton ne s'effectue qu'au premier clic
0
jordane45 Messages postés 37253 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 mars 2023 4 551 > essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 16:04
as tu bien remplacé, dans le IF , les caractères << par & lt;& lt; (sans espaces) ??
As tu bien utilisé le double égal pour faire la comparaison ?
As tu testé mon code tel quel ? car il fonctionne parfaitement !
0
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 16:08
Je ne l'ai pas testé tel quel! J'ai juste apporté toutes les modifications suggérées au mien
0
jordane45 Messages postés 37253 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 mars 2023 4 551
Modifié par jordane45 le 9/08/2015 à 16:09
Une autre possibilité est d'utiliser textContent au lieu de innHTML
  function toggle_div(button) {
   var txt = button.textContent;
   //console.log(txt);
      if(txt == "<<"){
          button.innerHTML = ">>";
      }else{
        button.innerHTML = "<<";
     }
    }

là.. pas besoin de transformer tes chaines de caractères....

Cordialement,
Jordane
0
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 16:23
Nickel chrome!!!! Mercu bcp Jordane!!!!!!
0
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 16:24
Merci à tous!
0
essytelle Messages postés 21 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 20 août 2015
9 août 2015 à 16:25
  • merci
0