繁体   English   中英

setInterval在Webkit浏览器中表现奇特

[英]setInterval acting odd in webkit browsers

我正在为网站的仪表板工作,而我要添加的最终功能之一是时钟。 我有一个基本的函数来获取日期/时间,对其进行格式化,然后将其输出到时钟中,但是我的setInterval函数在Webkit浏览器中不起作用。 我试图以几种不同的方式重新安排它,但没有成功。

在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。 有谁知道为什么setInterval在Webkit中表现异常,以及解决方法是什么?

事实证明,我的代码中存在一些错误。 一种是时间对象需要全局声明。 另外,最好的语法是将整个内容包装到一个名为updateClock()函数中,然后在该函数上使用setInterval ,该函数之后不带()

setInterval(updateClock, 1000);

祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM