Je suis novice en Javascript, donc je ne suis pas sûr de poser la bonne question ici. Mais j'ai 6 éléments - 6 arbres, sur lesquels un utilisateur peut cliquer, puis ils disparaissent. Une fois qu'ils ont tous disparu, je veux que quelque chose d'autre se produise. Mais comme je ne sais pas dans quel ordre l'utilisateur va cliquer sur les arbres (et que je n'ai pas encore beaucoup appris sur les JS), j'ai pensé qu'une instruction if/else demandant s'il ne reste que 0 arbre pourrait appeler une nouvelle fonction.
Malheureusement, je n'arrive pas à le faire fonctionner. Je ne sais pas si je l'écris de la mauvaise façon, si je le place au mauvais endroit ou si je le fais simplement mal, mais il semble qu'il donne un faux résultat dès le début, puisque l'utilisateur n'a pas encore cliqué sur quoi que ce soit. Alors comment puis-je le faire tourner en boucle et vérifier plusieurs fois combien d'arbres il reste ?
Désolé, le code est un peu long, mais je ne sais pas vraiment comment l'optimiser et le rendre plus court pour le moment.
var TreesLeft = 6;
function TreeGoneOnClick(){
console.log("TreeGoneOnClick");
BigTrees.classList.add("flash");
//click each tree
tree1.addEventListener("click", tree1Clicked);
tree2.addEventListener("click", tree2Clicked);
tree3.addEventListener("click", tree3Clicked);
tree4.addEventListener("click", tree4Clicked);
tree5.addEventListener("click", tree5Clicked);
tree6.addEventListener("click", tree6Clicked);
ifelse();
}
function tree1Clicked (){
console.log("tree1 clicked");
TreesLeft-=1;
tree1.classList.remove("tree1S");
}
function tree2Clicked (){
console.log("tree2 clicked");
TreesLeft-=1;
tree2.classList.remove("tree2S");
}
function tree3Clicked (){
console.log("tree3 clicked");
TreesLeft-=1;
tree3.classList.remove("tree3S");
}
function tree4Clicked (){
console.log("tree4 clicked");
TreesLeft=TreesLeft-1;
tree4.classList.remove("tree4S");
}
function tree5Clicked (){
console.log("tree5 clicked");
TreesLeft-=1;
tree5.classList.remove("tree5S");
}
function tree6Clicked (){
console.log("tree6 clicked");
TreesLeft-=1;
tree6.classList.remove("tree6S");
}
function ifelse(){
if (TreesLeft ==0){
console.log("it worked");
allTreesGone();
}
else {
console.log("did not work");
}
}
function allTreesGone (){
console.log("All trees are gone");
}