2016-05-09 2 views
0
var setTimer; 
var isTimeSet = false; 

if (!isTimeSet) { 
    setTimer = $('#hdn_timerTime').val(); 
    isTimeSet = true; 

    } 



initialTimer(); 
function initialTimer() {   
    var CustomMinutes = 60 * parseInt(setTimer), 

     display = $('#time'); 
    startTimer(CustomMinutes, display); 
} 

function startTimer(duration, display) { 

    var timer = duration, minutes, seconds; 
    setInterval(function() { 

     minutes = parseInt(timer/60, 10) 
     seconds = parseInt(timer % 60, 10); 

     minutes = minutes < 10 ? "0" + minutes : minutes; 
     seconds = seconds < 10 ? "0" + seconds : seconds; 

     display.text(minutes + ":" + seconds); 

     if (--timer < 0) { 

      timer = duration; 
      $('#outputmeters').val(JSON.stringify(listItem)); 
      // _hardMeter.UpdateMeterData(); 
      _hardMeter.TempUpdateMeterDataConfirmation(); 

     } 
    }, 1000); 
} 

Dieser Code benutze ich aber zum ersten Mal funktioniert es gut als danach es Zeit beginnt zu reduzieren und Funktion Feuer sehr schnell. Ich weiß nicht, wie es passiert. Bitte helfen Sie mir in diesem und wenn Sie eine bessere Lösung dafür haben. Bitte teilen Sie es?Timer löst nicht nach einer Minute mit jQuery oder geben Sie eine andere Lösung, um die Funktion nach jeweils 1 min auszulösen?

+0

Wert für setTimer ist 1. –

Antwort

0

Sie können setInterval verwenden die gleiche Funktion wiederholt in festgelegten Intervallen zu rufen, bis entweder die Seite entladen wird oder Sie rufen clearInterval:

var timedFunction = function() { 
    ... // Do something 
} 

setInterval(timedFunction, 60 * 1000); 

Wenn Ihre Timer-Funktion Argumente verwendet, die jedes Mal zu ändern, verwenden setTimeout und Call es innerhalb der Funktion Körper als auch

var timedFunctionWithArguments = function(iterations) { 

    console.debug(iterations); // Do something 

    setTimeout(timedFunctionWithArguments, 60 * 1000, iterations++); 
} 

timedFunctionWithArguments(0); 
+0

Jedesmal 'timedFunction' aufgerufen wird, wird neues Intervall erstellt werden ... das ist schlecht. –

+0

Whoops, ich habe 'setInterval' und' setTimeout' durcheinander gebracht ... – Vidalia

+0

Nun sind deine Erklärung und der Beispielcode anders ... –

Verwandte Themen