jQuery倒计时插件:没有倒计时,只有零

jquery countdown plugin: no countdown, only zeros

本文关键字:倒计时 插件 jQuery      更新时间:2023-09-26

我想为每个div创建200个div和计时器。这是我的代码:

$(document).ready(function() {
    for(var i=0; i<200; i++)
    {
        var tag = '<div id="' + i +'" style="width:150px"></div><br/>';
        $('#rsr').append(tag);
    }
    for(var i=0;i<200; i++)
    {
    var date = randomDate(new Date(2012, 0, 1), new Date())
        $("#"+i).countdown({until: date});
    }
    });
    function randomDate(start, end) {
        return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()))
    }

错误在哪里?
谢谢。小提琴

问题很简单,您正在创建 2012 年 1 月 1 日到今天的日期,因此它总是过去。如果目标日期已经过去了,插件将在零处停止。

选择例如 2013 代替:

var date = randomDate(new Date(2013, 0, 1), new Date())

您应该解决id问题(它们不应该以数字开头),但是大多数浏览器可以轻松应对它,因此这不是实际原因。

小提琴:http://jsfiddle.net/SDFLn/17/

id 不能以数字开头,试试这个:

for(var i=0; i<200; i++)
{
    var tag = '<div id="cnt_' + i +'" style="width:150px"></div><br/>';
    $('#rsr').append(tag);
}
for(var i=0;i<200; i++)
{
var date = randomDate(new Date(2012, 0, 1), new Date())
    $("#cnt_"+i).countdown({until: date});
}
})

而不是id="'+i+'"id="cnt_'+i+'"

请替换代码的这一部分:

for(var i=0;i<200; i++)
{
    var date = randomDate(new Date(2012, 0, 1), new Date());
    $("#s"+i).countdown({until: date});
}

不能使用数字作为起始字符的id。并且不要忘记用分号;结束这些行。