2012-10-16 47 views
0

嗨,大家好,請檢查此代碼,第一部分來自innit,第二部分是我的定時器功能。非常感謝!JavaScript定時器跳轉

我設置了一個計時器15分鐘。節省時間的餅乾和閱讀的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); 
    } 
} 

回答

1

我相信parseInt解析它可以在字符串中找到的第一個整數值。在你的例子中,你保存這個格式的時間:「minLeft:secLeft」。我認爲parseInt只會解析minLeft部分,並忽略':'後面的字符串的其餘部分。所以你的13分鐘秒秒被解析成13秒秒secondsleft = parseInt(ct);嘗試將createCookie(「secondsleft」,timeLeft)更改爲createCookie(「secondsleft」,secondsleft.toString())。

+0

真棒謝謝!好開始! – Atom23

0

這裏工作fiddle

你的問題是:

var timeCookie = createCookie("secondsleft", timeLeft); 

timelLeft是一個字符串( 「14:59」),所以解析後詮釋它轉化爲14,和-1你有「0:13」。你需要以秒爲單位的價值:

var timeCookie = createCookie("secondsleft", secondsleft);