首页 > 解决方案 > 您如何摆脱警报框并恢复行动流程?- Javascript

问题描述

所以我正在编写一个简单的 javascript 计时器,并在 30 秒时提示用户是否要重置倒计时或让它继续。我可以重置计时器,但是当用户单击警报框上的取消时我卡住了。

我尝试让计时器在当前时间恢复,但这无济于事,因为警报框不断重新出现

我对 javascript 还是很陌生,所以我想继续使用 vanilla js,直到我对基础有了更深入的了解!

任何指导将不胜感激!

这是我的代码:

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.textContent = minutes + ":" + seconds;
        
        if(timer<30){
            var message = confirm("Would you like to extend timer?");
            
            if (message == true) {
                timer = 60 * 1;
            } 
            
            else{
                timer = timer;
                
            }
            
        }
        

        if (--timer < 0) {
            timer = duration;
        }
    }, 1000);
}


function resetTimer() {
  timer = 60 * 1;
}





window.onload = function () {
    var fiveMinutes = 60 * 1,
        display = document.querySelector('#time');
    startTimer(fiveMinutes, display);
};

标签: javascript

解决方案


只需放置if(timer==30)而不是if(timer<30)恰好在 30 个单位的时间内,您会在该实例上被要求确认一次(但是请注意,在确认完成之前,提示将每秒不断弹出)。如果你延长它,它会再次等到你的计时器下降到 30 单位,否则它会简单地下降到 0 并爆发。


推荐阅读