2012-12-18 2 views
0

J'essaie de créer un délai d'attente sur ma page Web en comptant de 1min à 0 secondes, puis en affichant un message. Si l'utilisateur déplace la souris (c'est-à-dire est toujours actif sur la page), la minuterie se réinitialise. Je ne peux pas obtenir la fonction de réinitialisation pour réinitialiser mes valeurs. Ce qu'il fait est de compter le temps plus rapidement qu'avant et de rester coincé dans un cycle incassable.compte à rebours javascript avec la souris sur la réinitialisation

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
     <script type="text/javascript"> 

      var mins = 1; 
      var secs = 0; 
      var timer; 

      function start() 
       { 
        timer = setInterval("update()", 1000); 
       } 

       function reset() { 
        var mins = 1 
        var secs = 0; 
        var timer; 
        start(); 
       } 

      function update() 
       { 
        var timeField = document.getElementById("time"); 
        if (secs == 0) 
         { 
          if (mins == 0) 
           { 
            timeField.innerHTML = "Time's up!"; 
            clearInterval(timer); 
            alert("Time's up"); 
            return; 
           } 

          mins--; 
          secs = 59; 
         } 
         else 
          { 
          secs--; 
          } 
         if (secs < 10) 
          { 
          timeField.innerHTML = 'Time left: ' + mins + ':0' + secs; 
         } 
         else 
          { 
          timeField.innerHTML = 'Time left: ' + mins + ':' + secs; 
          }  
         } 
</script> 
</head> 
<body onload="start();" onmousemove="reset();"> 
     <div id="time" > 
     </div> 
</body> 
</html> 

Comment puis-je l'avoir pour réinitialiser le compte à rebours et recommencer? Je suis nouveau à javascript alors s'il vous plaît soyez patient.

+0

'timer = window.clearInterval (timer);' – PitaJ

+0

@PitaJ pouvez-vous être un peu plus précis? Où dois-je mettre ceci dans mon code etc? – WillNZ

+0

Je formule une réponse .. maintenez – PitaJ

Répondre

2

Modifier votre fonction de réinitialisation,

function reset() { 
    mins = 1; 
    secs = 0; 

    window.clearInterval(timer); 

    start(); 
} 

Déclare minuterie en dehors de toutes les fonctions.

+0

Mis à jour, la variable de temporisateur devrait être déclarée seulement après que le dernier temporisateur a été remis à zéro. – ATOzTOA

+0

Pourquoi même déclarer la variable timer? Supprimez simplement cette ligne complètement. – PitaJ

+0

Cela ne provoquera-t-il pas une erreur de référence indéfinie? – ATOzTOA