JavaScript计时器不会每秒计数

阮团图

我正在为某天创建倒计时。但是,由于某种原因,我制作的那个似乎无法正常工作。我希望使用setInterval每秒调用一次它,但它仅显示加载页面时的时间。

这是代码

// Timer
targetDate = new Date(2014, 8, 22, 0, 0, 0);

function tick(ddate, id) {

    var dateNow = new Date();
    var amount = ddate.getTime() - dateNow.getTime();
    delete dateNow;

    if (amount <= 0) {
        document.getElementById(id).innerHTML="Now!";
    } else {
        var days, hours, mins, secs, out;
        days = 0; hours = 0; mins = 0; secs = 0; out = "";

        amount = Math.floor(amount/1000);

        days = Math.floor(amount / 86400);
        amount %= 86400;

        hours = Math.floor(amount / 3600);
        amount %= 3600;

        mins = Math.floor(amount / 60);
        amount %= 60;

        secs = Math.floor(amount);

        out += "There are ";
        out += (days <= 9?'0':'') + days + " " + ((days == 1)?"day":"days") + ", ";
        out += (hours <= 9?'0':'') + hours + " " + ((hours == 1)?"hour":"hours") + ", ";
        out += (mins <= 9?'0':'') + mins + " " + ((mins == 1)?"min":"mins") + ", ";
        out += (secs <= 9?'0':'') + secs + " " + ((secs == 1)?"sec":"secs") + " ";
        out += "until the end of this semester";
        document.getElementById(id).innerHTML = out;
    }
}

function getCount() {
    setInterval(tick(targetDate, "timer"), 1000);
}

window.onload = function() {
    getCount();
};

有人可以指出我搞砸的部分,谢谢

尖尖的

您需要将一个函数传递给setInterval()—您要传递调用函数的结果

setInterval(function() { tick(targetDate, "timer"); }, 1000);

您的代码调用了该函数,然后将返回值(undefined传递setInterval()因此,您的代码按要求填充了DOM元素,但只完成了一次。setInterval()呼叫只是被忽略。如上所述,通过setInterval()函数调用包装在另一个函数中,将按预期工作。

请注意,计时器服务不是超级准确的,并且当浏览器选项卡未处于活动状态时,浏览器不会按计划运行间隔计时器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript计时器不会每秒计数

来自分类Dev

javascript计时器减去计数

来自分类Dev

JavaScript计时器不会重置

来自分类Dev

Java计时器,每秒更新

来自分类Dev

计时器 - javascript

来自分类Dev

在javascript中创建一个计数计时器

来自分类Dev

计时器Android计数器

来自分类Dev

计时器未在WatchKit上每秒触发

来自分类Dev

每秒钟计时器几秒钟

来自分类Dev

在android eclipse上每秒钟运行的计时器

来自分类Dev

递增计数倒数计时器

来自分类Dev

灵活的JavaScript计时器

来自分类Dev

Javascript计时器功能

来自分类Dev

Javascript计时器倒数

来自分类Dev

内联Javascript计时器

来自分类Dev

停止Javascript计时器

来自分类Dev

JavaScript:暂停计时器

来自分类Dev

倒数计时器JavaScript

来自分类Dev

倒数计时器javascript

来自分类Dev

JavaScript 中的计时器

来自分类Dev

JavaScript 计时器的问题

来自分类Dev

Javascript-如何在计时器达到 0 时重置按钮计数器

来自分类Dev

JavaScript中的计时器有时不想停止计数

来自分类Dev

只需5分钟即可在javascript中计数计时器

来自分类Dev

javascript计时器随着时间的流逝计数非常快

来自分类Dev

您如何集成JavaScript计时器来从ruby变量中进行倒数计数?

来自分类Dev

新文本到达时,不会删除javascript计时器完成后的文本

来自分类Dev

倒数计时器的计数器不工作

来自分类Dev

SKAction建立计时器/分数计数器