试图在时间到了时再次开始倒计时

时间:2015-07-29 04:13:38

标签: jquery loops countdowntimer

我正在使用jQuery.countdown并且我正在努力使其在倒计时结束后重新开始,我希望每个星期五重新启动另一个日期。所以它整周倒计时,当它在星期五到达时会发出一条消息,然后等待一段时间然后重新启动。我知道如何进行第一次倒计时,但我有问题让倒计时重新开始。在这种情况下,不知道如何处理设置标志变量或如何使用循环。这是一段无用的代码。

我在全球范围内设置var again = false(你在我意识到的片段中没有看到它)。然后检查它是否是假的,如果新的日期<那么str。 str在函数中更新,说明完成后的操作。在我的原始代码中,我将str设置为第一个未来日期,并将其作为countdown method中的参数放入"2015/7/27 23:49:10"进行测试。如何重新设置定时器?我想我需要某种循环机制。

    if(again == false && new Date() < new Date(str)){
            $('#clock').countdown("2015/7/27 23:49:10") .on('update.countdown', function(event) {
              var format = '%D days %H hours %M mminutes %S seconds';
                   $(this).html(event.strftime(format));
                      again = true
                     })
                     .on('finish.countdown', function(event) {
                            if(again == true){
                                 $(this).html('This offer has expired!');
                                      str = "2015/7/27 23:49:39"
                                     window.setTimeout(function(){again = false},5000) 
                                     again = false;
                                     console.log(str)  
                            }


                     })                        
       }

1 个答案:

答案 0 :(得分:0)

setTimeout内,您可以重新初始化它。您有一个名为event.elapsed的内容来检查时间是否已过去,并且不需要finish.countdown。的 Example from site

<强> WORKING DEMO

$(document).ready(function(){
    var date='2015/07/29 12:29:00';//change this to very near time and elapse and check it
    var format='%D days %H hours %M minutes %S seconds';                
    $('#clock').countdown(date)
    .on('update.countdown', function(event){
         $(this).html(event.strftime(format));
    }).on('finish.countdown',function(event){
           var ev=event;
           var ctrl=$(this);
           $(ctrl).html('This offer has expired!');
           window.setTimeout(function(){
              $('#clock').countdown('2015/12/20 12:34:56'); //change this date accordingly
           },5000)
    })
});