0

私はWebサイトのダッシュボードに取り組んでおり、追加する最後の機能の1つは時計です。日付/時刻を取得してフォーマットし、時計に出力する基本的な関数がありますが、setIntervalWebkitブラウザーで関数が機能していません。私はそれをいくつかの異なる方法で再配置しようとしましたが、成功しませんでした。

Webkitでは、時計のテキストを強調表示したり、スクロールしたりして、時計を強制的に再レン​​ダリングすると、時計がリロードされます。

私のコードは次のようになります。

$(document).ready(function() {

    setInterval(function() {

        var time = new Date();

        var hour = time.getHours();
        var min = time.getMinutes();
        var sec = time.getSeconds();
        var amPm = (hour < 12 ? "AM" : "PM");

        hour = (hour <= 12 ? hour : hour - 12);
        min = (min < 10 ? "0" + min : min);
        sec = (sec < 10 ? "0" + sec : sec);

        var currentTime = (hour + " : " + min + " : " + sec + " " + amPm);

        $('#time').html(currentTime);


        var date = time.getDate();

        var month = time.getMonth();

        var year = time.getYear();

        year = year - 100;

        var todaysDate = (month + "/" + date + "/" + year);

        $('#date').html(todaysDate);


        var dayNum = time.getDay();

        var day = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

        $('#day').html(day[dayNum]);


    }, 1000);

});​

Firefoxでは動作しますが、ChromeやSafariでは動作しません。setIntervalWebkitで奇妙な動作をする理由と、修正方法を知っている人はいますか?

4

1 に答える 1

0

結局のところ、私のコードにはいくつかのバグがありました。1つは、時間オブジェクトをグローバルに宣言する必要があるということです。また、最良の構文は、呼び出された1つの関数にすべてをラップしてから、関数の後ではなく、その上でupdateClock()使用することです。setInterval()

setInterval(updateClock, 1000);

幸運を

于 2012-08-14T21:33:34.990 に答える