1

jqueryを使用してカウントダウンタイマーを作成しています。ここでいくつかの例を参照し、次のコードを作成しました。問題は、時間が表示されないことです。何が問題なのかわかりません。2時間近く立ち往生..

バックコード

    var day = 1;                        //countdown time
    var start = player.LastActive;      // Use UtcNow instead of Now
    var endTime = start.AddDays(day);   //endTime is a member, not a local variable
    Timespan remainingTime = endTime - DateTime.UtcNow;

私のJavaScript

var endTime = '<%= remainingTime%>';
var startTime = '<%= DateTime.UtcNow %>'

$(document).load(function () {
        countDown(endTime);
    });

    function countDown(endTime) {
        if (endTime > 0) {
            var d = document.getElementById("countDiv");
            d.innerHTML = endTime;
            setTimeout(function () { countDown(endTime - 1); }, 1000);
        }
    }

私のhtml

<div id="countDiv" style="float:left;margin-top: 13px; margin-left:5px;"></div>

私の目標は、プレーヤーが毎日の動きを取得するまであとどれくらいかかるかを示すことです。これは、プレーヤーが最後にアクティブな時間の 1 日後です。誰かが私を啓発できますか..ありがとう

4

4 に答える 4

2

使用する$(window).load

また

$(document).ready

だがしかし$(document).load

jqueryを使用しているように見えるので、次のことができます

$(document).ready(function () {
        countDown(endTime);
    });

    function countDown(endTime) {
        if (endTime > 0) {
            $('#countDiv').text(secondsToTime(endTime));
            setTimeout(function () { countDown(endTime - 1); }, 1000);
        }
    }
function secondsToTime(secs)
{
    var hours = Math.floor(secs / (60 * 60));

    var divisor_for_minutes = secs % (60 * 60);
    var minutes = Math.floor(divisor_for_minutes / 60);

    var divisor_for_seconds = divisor_for_minutes % 60;
    var seconds = Math.ceil(divisor_for_seconds);

    return hours +':' + minutes + ':' + seconds;
}

数秒間、それは https://stackoverflow.com/a/6312999/961526から来ています。そこにある別のバージョンを使用することができます。

jsFiddleを参照してください

于 2013-09-13T11:38:13.700 に答える
2

endtime は JavaScript コードの文字列であるため、最初に整数に変換します

これを試して

$(document).ready(function () {
        countDown(parseInt(endTime));
    });
于 2013-09-13T11:35:29.200 に答える
0

readyではありませんload

$(document).ready(function () {
  countDown(endTime);
});
于 2013-09-13T11:37:51.563 に答える
0

またはこれを試してください

  $(function() {
            countDown(endTime);
       });

 function countDown(parseInt(endTime)) {
        if (endTime > 0) {
            $('#countDiv').text(endTime);
            setTimeout(function () { countDown(endTime - 1); }, 1000);
        }
    }
于 2013-09-13T11:40:47.693 に答える