JavaScript定时器提前跳转
大家好,请检查这个代码,第一部分来自innit,第二部分是我的定时器功能。非常感谢 我设置了一个15分钟的计时器。在cookies中保存时间,并在init上读取保存的时间JavaScript定时器提前跳转,javascript,jquery,Javascript,Jquery,大家好,请检查这个代码,第一部分来自innit,第二部分是我的定时器功能。非常感谢 我设置了一个15分钟的计时器。在cookies中保存时间,并在init上读取保存的时间 var cc=readCookie("agreement"); var ct=readCookie("secondsleft"); if (ct == null || ct == '') { secondsleft = 15*60; } else { secondsleft = parseInt(ct); }
var cc=readCookie("agreement");
var ct=readCookie("secondsleft");
if (ct == null || ct == '') {
secondsleft = 15*60;
} else {
secondsleft = parseInt(ct);
}
myInterval = setInterval(bingoTimer,1000);
有人知道为什么刷新后这个代码会跳到0:13吗
function bingoTimer() {
secondsleft--;
if (secondsleft < 0) {
} else {
var minLeft = parseInt(secondsleft / 60);
var secLeft = secondsleft - minLeft * 60;
var timeLeft = " " + minLeft+":" + secLeft;
var timeCookie = createCookie("secondsleft", timeLeft);
$('#timer').html(timeLeft);
}
}
函数bingoTimer(){
第二步--;
如果(秒英尺<0){
}否则{
var minLeft=parseInt(secondsleft/60);
var secLeft=secondsleft-minLeft*60;
var timeLeft=“+minLeft+”:“+secLeft;
var timeCookie=createCookie(“secondsleft”,timeLeft);
$('#timer').html(timeLeft);
}
}
我相信parseInt会解析它可以在字符串中找到的第一个整数值。在您的示例中,您可以使用以下格式保存时间:“minLeft:secLeft”。我认为parseInt将只解析minLeft部分,而忽略“:”之后字符串的其余部分。所以你的13分几秒在secondsleft=parseInt(ct)中被解析为13秒
尝试将createCookie(“secondsleft”,timeLeft)更改为createCookie(“secondsleft”,secondsleft.toString())。这里正在工作
你的问题是:
var timeCookie = createCookie("secondsleft", timeLeft);
timelLeft是一个字符串(“14:59”),所以在解析int之后,它被转换为14,-1,得到“0:13”。您需要以秒为单位输入值:
var timeCookie = createCookie("secondsleft", secondsleft);
太棒了,谢谢!好的开始!