2012-03-13 7 views
0

Je suis en train d'utiliser setInterval pour calculer de temps, voici mon script:setInterval Javascript MVC2

var intervalID; 
     function StartTimer() { 
      var intervalID = setInterval(function() { 
       var settimmer = 100; // $('#timeleft').val(); 
       var seconds = 0; 
       seconds++; 
       if (seconds >= 60) { 
        settimmer--; 
        seconds = 0; 
        $('#timeleft').val(settimmer); 
       } 
      }, 1000); 
     } 
     function StopTimer() { 
      clearInterval(intervalID); 
     } 

<input type="text" size="8" id="timeleft" name="timeleft" value="100" /> 
    <button onclick="StartTimer();"> 
     start</button> 
    <button onclick="StopTimer();"> 
     Stop</button> 

Je ne fonctionne pas, mais quand j'utilise le script suivant, il fonctionne ne sais pas comment, mais pour l'arrêter:

var settimmer = 100; 
    var seconds = 0; 
    $(function() { 

      window.setInterval(function() { 
       seconds++; 
       if (seconds >= 60) { 
        settimmer--; 
        seconds = 0; 
        $('#timeleft').val(settimmer); 
       } 

      }, 1000); 

    }); 

Merci d'avance.

Répondre

0

Vous déclarez de nouveau intervalID dans la fonction StartTimer(), supprimez le var.

+0

Merci beaucoup – hncl

0

Le problème est la portée de la variable. Vous re-déclarer l'intervalleID dans la fonction StartTimer, et il couvrira la variable globale 'intervalID' et ne sera utilisé que dans cette fonction. En fait, la variable 'intervalID' à l'extérieur n'est pas évaluée. Ainsi, lorsque vous utilisez clearInterval (intervalleID), cela ne fonctionne certainement pas.