Je suis un développeur web assez nouveau qui apprend html5 et javascript.en passant "this" comme argument
J'ai une page Web avec des «onglets» qui font disparaître et réapparaissent des parties de la page Web.
Les liens sont comme ceci:
<a href="?tab=1" id="t1" class="tab" onclick="switchf('Home',this)">HOME</a>
et la fonction javascript switchf()
est comme ceci:
function switchf(field,tab) {
var divs = ["Home","About","Chatroom","Account","Contact","Signup"];
for(var j = 0; j < divs.length; j++) {
if(field != divs[j])
document.getElementById(divs[j]).style.display = "none";
else
document.getElementById(divs[j]).style.display = "block";
}
var t = document.getElementsByClassName("tab");
for(var i = 0; i < t.length; i++) {
t[i].style.backgroundColor = "#dddddd";
}
tab.style.backgroundColor = "#cccccc";
document.getElementsByTagName("title")[0].innerHTML = field;
}
Il prend deux arguments - la partie de la page qui apparaît et l'onglet qui était pressé.
Il passe en revue les parties de la page et les modifie toutes en display="none"
, puis passe à tous les onglets et les modifie en backgroundColor="#dddddd"
.
Puis il choisit l'onglet droit pour changer de couleur et la partie droite de la page pour apparaître.
Toutefois, lorsque je passe this
en tant qu'argument (onclick="switchf('Home',this)"
), il ne change pas de couleur (tab.style.backgroundColor = "#cccccc";
).
Est-ce la bonne façon de passer this
comme argument? J'ai pensé que ce serait le moyen le plus simple - mais je ne l'ai jamais utilisé auparavant et cela ne fonctionne pas dans cet exemple.
Comme toutes mes autres erreurs, c'est probablement une très simple, mais s'il vous plaît me le signaler.
Merci.
il semble toujours recharger la page. –
@Jon: Si vous avez modifié le code correctement, il ne rechargera la page que si le JavaScript échoue quelque temps avant le 'return false;'. Vérifiez la console de développeur de votre navigateur pour les erreurs. – user2736012
Je viens de comprendre qu'il y avait une erreur qui se lit "Uncaught TypeError: Impossible de lire la propriété 'style' de null" dans le javascript sur cette ligne: 'document.getElementById (divs [j]). Style.display =" none "; Qu'est-ce que cela signifie? –