Ma fonction ne s'exécute qu'une fois
Résolu
essytelle
Messages postés
21
Statut
Membre
-
essytelle Messages postés 21 Statut Membre -
essytelle Messages postés 21 Statut Membre -
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!
Voici le bouton en question et maintenant la fonction:
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 = "<<";
}
A voir également:
- Ma fonction ne s'exécute qu'une fois
- Fonction si et - Guide
- Fonction miroir - Guide
- Signe fois clavier iphone ✓ - Forum Word
- Téléphone sonne 1 fois puis messagerie - Forum Mobile
- Paiement 4 fois cdiscount impossible ✓ - Forum Consommation & Internet
3 réponses
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é :
NB : Il faut remplacer << par & lt; & lt; (sans espaces)
Cordialement,
Jordane
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
Une autre possibilité est d'utiliser textContent au lieu de innHTML
là.. pas besoin de transformer tes chaines de caractères....
Cordialement,
Jordane
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