14-03-2013, 01:29 PM
(Modification du message : 14-03-2013, 08:24 PM par Sephi-Chan.)
Bonjour,
Depuis plus d'une heure je suis bloqué sur mon compte à rebours en JS. En fait il s'agit d'un code que j'ai trouvé sur ce forum et que j'ai un peu modifié à ma sauce. Mais je ne m'y connais pas du tout en JS, du coup j'ai un peu fait à l'arrache même si on peut comprendre le gros du fonctionnement.
J'ai donc un compte à rebours qui doit s'affiché si une ou des constructions sont en cours. Je fais passer dans le fonction reste() le nom du bâtiment en construction, le niveau en construction, le nombre de seconde restantes de construction, id de la construction en cours qui sert à nommer les div différents pour afficher plusieurs comptes à rebours et enfin le lien qui doit s'afficher à la fin de la construction.
Mon soucis vient, je pense, de la syntax de la fonction setTimeout(), mais j'ai eu beau la tourner dans tous les sens, je n'y arrive toujours pas ! En fait, le compte à rebours reste bloqué, il ne tourne pas. J'ai juste le temps restant au moment d'actualisation de la page qui s'affiche.
Si certains peuvent m'aider !
Voici le code JS :
Depuis plus d'une heure je suis bloqué sur mon compte à rebours en JS. En fait il s'agit d'un code que j'ai trouvé sur ce forum et que j'ai un peu modifié à ma sauce. Mais je ne m'y connais pas du tout en JS, du coup j'ai un peu fait à l'arrache même si on peut comprendre le gros du fonctionnement.
J'ai donc un compte à rebours qui doit s'affiché si une ou des constructions sont en cours. Je fais passer dans le fonction reste() le nom du bâtiment en construction, le niveau en construction, le nombre de seconde restantes de construction, id de la construction en cours qui sert à nommer les div différents pour afficher plusieurs comptes à rebours et enfin le lien qui doit s'afficher à la fin de la construction.
Mon soucis vient, je pense, de la syntax de la fonction setTimeout(), mais j'ai eu beau la tourner dans tous les sens, je n'y arrive toujours pas ! En fait, le compte à rebours reste bloqué, il ne tourne pas. J'ai juste le temps restant au moment d'actualisation de la page qui s'affiche.
Si certains peuvent m'aider !
Voici le code JS :
function reste(nom, niveau, zetime, nom_id, zelien) {
var nid = nom_id;
var lien = zelien;
if (zetime>0) {
var heures = Math.floor(zetime / 3600);
var minutes = Math.floor(((zetime / 3600) - Math.floor(zetime / 3600)) * 60);
var secondes = zetime - ((Math.floor(zetime / 60)) * 60);
document.getElementById(nid).innerHTML = "<center>"+ nom + " <strong>Niveau " + niveau + "</strong> - " + heures + ":" + minutes + ":" + secondes + "</center>";
var restant = zetime - 1;
var fonction = "reste(" + nom + "," + niveau + "," + restant + "," + nid + "," + lien + ")";
// alert(fonction);
setTimeout("reste(" + nom + "," + niveau + "," + restant + "," + nid + "," + lien + ")", 1000);
}
else {
document.getElementById(nid).innerHTML = "<center>"+ nom + " <strong>Niveau " + niveau + "</strong> - " + "<a href='" + lien + "'>Terminé</a>" + "</center>";
}
}