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

时间:2012-06-28 08:57:21

标签: javascript jquery jquery-plugins countdown

我想为每个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()))
    }

哪里出错?
谢谢。 JsFiddle

3 个答案:

答案 0 :(得分:1)

问题只是你在1月1日 2012 和今天之间创建了一个日期,所以它总是在过去。如果目标日期已经过去,则插件将停止为零。

选择例如2013年:

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

应该修复id问题(它们不应该以数字开头),但是大多数浏览器都可以轻松应对它,所以这不是真正的原因。

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

答案 1 :(得分:0)

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+'"

答案 2 :(得分:0)

请替换这部分代码:

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

您不能将id作为起始字符。并且不要忘记用分号;结束行。