JQuery:当Countdown达到Zero时重新加载页面

时间:2017-04-15 10:01:52

标签: jquery refresh countdown countdowntimer page-refresh

我正在尝试使用JQuery完成CountDown时钟。 Evrything工作正常,除了最后一部分,我假装在倒计时到达0时重新加载页面。这就是我所拥有的:

1-首先,我将容器折叠起来:

// Countdown Clock JQuery
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;
        }
    }, 1000);
}
// JQuery function
jQuery(function ($) {
    var fiveMinutes = 60 * 5, 
        display = $('#countdown');
    startTimer(fiveMinutes, display);
    if (fiveMinutes === 0) {
          location.reload();
        }
});

2-现在时钟

if (fiveMinutes === 0) {
    location.reload();
    }

嗯,一切正常,但最后一点:

vidObj = VideoReader('test3.mp4');
width = vidObj.Width;
height = vidObj.Height;

subtractedImg = zeros([width height 3]);
videoFrames = [];
k = 1;
while hasFrame(vidObj)
    f = readFrame(vidObj);
    f=uint8(f);
    videoFrames = cat(numel(size(f)) + 1, videoFrames, f);
    k = k+1;
end
backgroundImg = median(videoFrames,4);
i=1; 

页面不会在倒数到零时重新加载。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你可以通过setTimeout重新加载它:

// JQuery function
jQuery(function ($) {
    var fiveMinutes = 60 * 5, 
        display = $('#countdown');
    startTimer(fiveMinutes, display);
    setTimeout(function(){ location.reload() }, fiveMinutes*1000);
});

答案 1 :(得分:0)

在第一次执行脚本期间,If条件仅执行一次。此时,fiveMinutes变量为60 * 5(300)且与=== 0条件不匹配。

// JQuery function
jQuery(function ($) {
    var fiveMinutes = 60 * 5, 
        display = $('#countdown');
    startTimer(fiveMinutes, display);
    if (fiveMinutes === 0) {
        location.reload();
    }
});

您需要检查计时器在;

中的运行时间是否为0
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;
    }
}, 1000);

功能,因此在定时器值更新中执行条件检查。

希望这有帮助。