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