计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能


 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);
}

我正在使用的这段代码,但这是第一次它工作正常,而不是之后它的时间开始减少并很快触发功能。我不知道这是怎么回事。

请帮助我解决这个问题,如果您有更好的解决方案。你能分享一下吗?

您可以使用

setInterval以设定的时间间隔重复调用同一函数,直到卸载页面或调用clearInterval

var timedFunction = function() {
  ... // Do something
}
setInterval(timedFunction, 60 * 1000);

如果您的定时函数接受每次都会更改的参数,请使用 setTimeout 并在函数体内调用它

var timedFunctionWithArguments = function(iterations) {
  console.debug(iterations); // Do something
  setTimeout(timedFunctionWithArguments, 60 * 1000, iterations++);
}
timedFunctionWithArguments(0);

最新更新