将JavaScript倒计时转换为jQuery倒计时并添加间隔

时间:2015-04-17 15:05:50

标签: javascript jquery html

我在JSFiddle找到了this JS-Countdown Script

编辑:

我现在正在使用rafaelcastrocouto的代码,这几乎是完美的。我想要一个10秒的JQuery倒计时脚本,其间隔时间间隔会在5秒后重置倒计时器,然后一次又一次地重复开始,但对于具有特定 id的特定课程,只需 在整个HTML页面上。如果它下降到0,倒计时应该停止。另外,我想将特定计数器重置为10。

关于每秒刷新一次的WebSocket,根据我为特定计数器获取的数据,我想重置它们,或者它们应该倒数到零。

新JSFiddle:http://jsfiddle.net/alexiovay/azkdry0w/4/

2 个答案:

答案 0 :(得分:2)

这是我用jquery和原生 setInterval 解决的方法......

var setup = function(){
  $('.count').each(eachSetup);    
};

var eachSetup = function(){
  var count = $(this);
  var sec = count.data('seconds') ;  
  count.data('count', sec);
};

var everySecond = function(){  
  $('.count').each(eachCount);    
};

var eachCount = function(){
  var count = $(this);
  var s = count.data('count');
  count.text(s);
  s--;
  if(s < 0) { 
    s = count.data('seconds');
  }
  count.data('count', s);
};

setup();
setInterval(everySecond, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p class="count" data-seconds="5"></p>
<p class="count" data-seconds="10"></p>
<p class="count" data-seconds="15"></p>

答案 1 :(得分:0)

您在代码中遇到严重错误,例如

  1. setTimeout(cd_go(id), 1000); - 应该指向函数引用而不是函数执行。 setTimeout还返回超时 id 。您必须经过id到clearTimeout

  2. clearTimeout(this);如果您使用严格模式

    < ID 而不是全局对象(窗口)或未定义/ LI>
  3. loop = setInterval(function(id) { … } - id 指向未完成,因为您没有为其传递任何值