Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS-单击时重置计时器_Javascript - Fatal编程技术网

Javascript JS-单击时重置计时器

Javascript JS-单击时重置计时器,javascript,Javascript,我有5分钟倒计时。此功能在页面加载时自动启动。我想重新加载页面数据并重置此倒计时。代码如下所示 HTML JS 函数计时器(){ var定时器=60*5,分,秒; setInterval(函数(){ 分钟=parseInt(计时器/60,10) 秒=parseInt(计时器%60,10); 分钟=分钟

我有5分钟倒计时。此功能在页面加载时自动启动。我想重新加载页面数据并重置此倒计时。代码如下所示

HTML


JS

函数计时器(){
var定时器=60*5,分,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10)
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
$(“#time”).text(“Tiempo restante para-productionazación de datos”+分钟+:“+秒);
如果(--定时器<0){
定时器=持续时间;
}
}, 1000);
}
问题是:当我点击链接时,计时器会发疯,无法正确重置


有人知道重置倒计时的正确方法吗?

您缺少一个
clearInterval
,否则每次单击元素时都会创建一个新的间隔

let interval=null;
函数计时器(){
var定时器=60*5,分,秒;
如果(间隔!==null){
间隔时间;
}
间隔=设置间隔(函数(){
分钟=parseInt(计时器/60,10)
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
$(“#time”).text(“Tiempo restante para-productionazación de datos”+分钟+:“+秒);
如果(--定时器<0){
定时器=持续时间;
}
}, 1000);
}

您可以在setInterval内部使用clearInterval

function timer(){
    var timer = 60 * 5, minutes, seconds;

    interval = setInterval(()=> {
        minutes = parseInt(timer / 60, 10)
        seconds = parseInt(timer % 60, 10);

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

        $('#time').text("Tiempo restante para actualización de datos " + minutes + ":" + seconds);

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

         if (interval !== null) clearInterval(interval);
    }, 1000);
}
函数计时器(){
var定时器=60*5,分,秒;
间隔=设置间隔(()=>{
分钟=parseInt(计时器/60,10)
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
$(“#time”).text(“Tiempo restante para-productionazación de datos”+分钟+:“+秒);
如果(--定时器<0){
定时器=持续时间;
}
如果(间隔!==null)clearInterval(间隔);
}, 1000);
}
function timer(){
    var timer = 60 * 5, 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;

        $('#time').text("Tiempo restante para actualización de datos " + minutes + ":" + seconds);

        if (--timer < 0) {
            timer = duration;
        }
    }, 1000);
}
function timer(){
    var timer = 60 * 5, minutes, seconds;

    interval = setInterval(()=> {
        minutes = parseInt(timer / 60, 10)
        seconds = parseInt(timer % 60, 10);

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

        $('#time').text("Tiempo restante para actualización de datos " + minutes + ":" + seconds);

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

         if (interval !== null) clearInterval(interval);
    }, 1000);
}