JavaScript Countdown计时器无法启动[包括Firebug错误]

时间:2013-02-12 23:12:59

标签: javascript jquery html timer

我的页面上有这个倒数计时器:http://www.dirtycookie.co

除非您刷新页面,否则它不会倒计时。

我有相同的脚本以不同的方式工作@ m.dirtycookie.co以供参考。

我在index.php <head>

上有这个脚本
     <script>
        $(document).ready(function () {

        function countdown() {
        // input new date here
        var newdate = new Date("Mar 01, 2013 20:00:00");
        // input new date here

        //DO NOT TOUCH THE REST UNLESS YOU KNOW JQUERY WELL
        var now = new Date();
        var timeDifference = newdate.getTime() - now.getTime();
        var d = Math.floor(timeDifference / 1000);
        var l = Math.floor(d / 60);
        var b = Math.floor(l / 60);
        var u = Math.floor(b / 24);
        b %= 24; l %= 60; d %= 60;

        if(d < 0){ var d = 0}
        if(l < 0){ var l = 0}
        if(b < 0){ var b = 0}
        if(u < 0){ var u = 0}

        $(".days").html(u);
        $(".hours").html(b);
        $(".minutes").html(l);
        $(".seconds").html(d);

        var timer = setTimeout('countdown()',1000);
        //DO NOT TOUCH THE REST UNLESS YOU KNOW JQUERY WELL
    }
window.onload=countdown ; 
});
</script>

萤火虫错误: ReferenceError:未定义倒计时 http://www.dirtycookie.co/ 106行 第106行实际上是:var timer = setTimeout('countdown()',1000);

此处的HTML就在这里:

    <div class="counter_wrap">

    <!-- Counter Title -->
        <h1>Countdown to Grand-Opening!</h1>

    <!-- Counter Title -->

    <!-- Counter Section -->
        <div class="numbers"><p class="days">23</p><p class="smallfont">Days</p></div>
        <div class="numbers"><p class="hours">19</p><p class="smallfont">Hours</p></div>
        <div class="numbers"><p class="minutes">7</p><p class="smallfont">Minutes</p></div>
        <div class="numbers"><p class="seconds">23</p><p class="smallfont">Seconds</p>

</div>

1 个答案:

答案 0 :(得分:3)

这可能是一个问题:

var timer = setTimeout('countdown()', 1000);

为什么称它为:

var timer = setTimeout(countdown, 1000);

字符串和eval实际上是不必要的。还

var timer = setTimeout(countdown(), 1000);
// is not the same as:
var timer = setTimeout(countdown, 1000);

在第一个调度countdown()的输出被调用为函数。在第二个中,你实际上是countdown(这就是你想要的)。