Problème Chronomètre JavaScript

Fermé
Utilisateur anonyme - Modifié le 23 févr. 2023 à 12:29
 Pitet - 23 févr. 2023 à 13:09

Bonjour à tous

J'ai codé un chronomètre en javascript mais j'ai un souci : quand je le lance une fois il marche bien, mais dés que je le relance il va 2 fois plus vite, puis 3 fois plus vite, et ainsi de suite...

Je pense que l'erreur vient du setTimeout mais je ne sais pas comment la corriger donc j'aimerais bien un peu d'aide.

Merci d'avance

Voici le code js : 

var sec = document.getElementById('secondes');

var bouton = document.getElementById('bouton');

var c;


 

bouton.addEventListener('click', init)

function init(){

    c=11;

}

bouton.addEventListener('click', lancerchrono);

function lancerchrono(){

c--;

sec.innerHTML= c + " secondes restantes";

if(c<=0){

    sec.innerHTML="Temps Ecoulé ! "

}

setTimeout (lancerchrono,1000);

}

A voir également:

1 réponse

Bonjour,

La fonction setTimeout() retourne l'identifiant du timer déclenché par cette fonction.

Lorque tu cliques sur le bouton pour lancer le timer, il faut vérifier si cet identifiant est déjà défini. Si oui, le timer est déjà en cours et il faut alors l'arrêter avec la fonction clearTimeout() qui prend en paramètre l'identifiant retourné par setTimeout().

Voir https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout

0