0

こんにちは皆さん、このコードをチェックしてください。最初の部分は innit から、2 番目は私のタイマー関数です。どうもありがとう!

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);
    }
}
4

2 に答える 2

1

parseInt は、文字列内で見つけられる最初の整数値を解析すると思います。あなたの例では、「minLeft:secLeft」という形式で時間を保存します。parseInt は minLeft 部分のみを解析し、「:」の後の残りの文字列は無視すると思います。したがって、13 分と何か秒は秒単位で 13 秒に解析されますleft = parseInt(ct);

createCookie("secondsleft", timeLeft) を createCookie("secondsleft", secondsleft.toString()) に変更してみてください。

于 2012-10-16T04:41:08.790 に答える
0

これがフィドルです

あなたの問題は:

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

timelLeftは文字列( "14:59")であるため、intを解析した後、14に変換され、-1は"0:13"になります。値を秒単位で入力する必要があります。

var timeCookie = createCookie("secondsleft", secondsleft);
于 2012-10-16T05:12:03.730 に答える