大家好请检查这段代码,第一部分来自innit,第二部分是我的计时器功能。非常感谢!
我设置了15分钟的计时器。节省cookie并在init上读取已保存的时间
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);
}
}
答案 0 :(得分:1)
我相信parseInt会解析它在字符串中可以找到的第一个整数值。在您的示例中,您可以使用以下格式保存时间:“minLeft:secLeft”。我认为parseInt只会解析minLeft部分并忽略':'之后的其余字符串。因此,你的13分钟和秒秒被解析为13秒,在secondsleft = parseInt(ct);
尝试将createCookie(“secondsleft”,timeLeft)更改为createCookie(“secondsleft”,secondsleft.toString())。
答案 1 :(得分:0)
这是有效的fiddle
你的问题是:
var timeCookie = createCookie("secondsleft", timeLeft);
timelLeft是一个字符串(“14:59”),所以在解析int之后它被转换为14,而-1则得到了“0:13”。你需要在几秒钟内设置值:
var timeCookie = createCookie("secondsleft", secondsleft);