首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让我的jQuery倒计时代码工作

如何让我的jQuery倒计时代码工作
EN

Stack Overflow用户
提问于 2019-03-23 08:22:33
回答 2查看 57关注 0票数 0

这是我的网站的一个简单的jQuery倒计时代码,它应该倒计时到2019年4月1日午夜。下面是jQuery和HTML代码的相关部分。问题是计时器在运行后不计时。任何关于这个问题的建议和纠正下面代码片段中的代码的方法都将对我有很大的帮助。

代码语言:javascript
复制
function makeTimer() {

  var endTime = new Date("01 April 2019 9:56:00 GMT+01:00");			
  endTime = (Date.parse(endTime) / 1000);

  var now = new Date();
  now = (Date.parse(now) / 1000);

  var timeLeft = endTime - now;

  var days = Math.floor(timeLeft / 86400); 
  var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
  var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
  var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));

  if (hours < "10") { hours = "0" + hours; }
  if (minutes < "10") { minutes = "0" + minutes; }
  if (seconds < "10") { seconds = "0" + seconds; }

  $(".days").html(days + "<br><span>days</span>");
  $(".hours").html(hours + "<br><span>hours</span>");
  $(".minutes").html(minutes + "<br><span>minutes</span>");
  $(".seconds").html(seconds + "<br><span>seconds</span>");		

}

setInterval(function() { makeTimer(); }, 1000);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <div class="row countdown-box" style="top: 0px">
  <div class="col-md-3">
    <div class="row">
      <div class="col-md-6">
        <h2 id="countdown" class="days">24<br>                        <span>days</span></h2>
      </div>

      <div class="col-md-6">
        <h2 id="countdown">:</h2>
      </div>
    </div>
  </div>

  <div class="col-md-3">
    <div class="row">
      <div class="col-md-6">
        <h2 id="countdown" class="hours">06<br><span>hours</span></h2>
      </div>

      <div class="col-md-6">
        <h2 id="countdown">:</h2>
      </div>
    </div>
  </div>

  <div class="col-md-3">
    <div class="row">
      <div class="col-md-6">
        <h2 id="countdown" class="minutes">22<br><span>minutes</span></h2>
      </div>

      <div class="col-md-6">
        <h2 id="countdown">:</h2>
      </div>
    </div>
  </div>

  <div class="col-md-3">
    <div class="row">
      <div class="col-md-12">
        <h2 id="countdown" class="seconds">59<br><span>seconds</span></h2>
      </div>
    </div>
  </div>
  </div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-23 08:43:44

不需要在setInterval中创建额外的函数,只需传递函数名

代码语言:javascript
复制
setInterval(makeTimer, 1000)

固定html

代码语言:javascript
复制
function makeTimer() {

  var endTime = new Date("01 April 2019 9:56:00 GMT+01:00");			
  endTime = (Date.parse(endTime) / 1000);

  var now = new Date();
  now = (Date.parse(now) / 1000);

  var timeLeft = endTime - now;

  var days = Math.floor(timeLeft / 86400); 
  var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
  var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
  var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));

  if (hours < "10") { hours = "0" + hours; }
  if (minutes < "10") { minutes = "0" + minutes; }
  if (seconds < "10") { seconds = "0" + seconds; }

  $(".days").html(days + "<br><span>days</span>");
  $(".hours").html(hours + "<br><span>hours</span>");
  $(".minutes").html(minutes + "<br><span>minutes</span>");
  $(".seconds").html(seconds + "<br><span>seconds</span>");		

}

setInterval(makeTimer, 1000);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <div class="row countdown-box" style="top: 0px">
  <div class="col-md-3">
    <div class="row">
      <div class="col-md-6">
        <h2 id="countdown" class="days">24<br>                        <span>days</span></h2>
      </div>

      <div class="col-md-6">
        <h2 id="countdown">:</h2>
      </div>
    </div>
  </div>

  <div class="col-md-3">
    <div class="row">
      <div class="col-md-6">
        <h2 id="countdown" class="hours">06<br><span>hours</span></h2>
      </div>

      <div class="col-md-6">
        <h2 id="countdown">:</h2>
      </div>
    </div>
  </div>

  <div class="col-md-3">
    <div class="row">
      <div class="col-md-6">
        <h2 id="countdown" class="minutes">22<br><span>minutes</span></h2>
      </div>

      <div class="col-md-6">
        <h2 id="countdown">:</h2>
      </div>
    </div>
  </div>

  <div class="col-md-3">
    <div class="row">
      <div class="col-md-12">
        <h2 id="countdown" class="seconds">59<br><span>seconds</span></h2>
      </div>
    </div>
  </div>
  </div>

票数 0
EN

Stack Overflow用户

发布于 2019-03-23 08:39:22

当您在HTML中执行所有使用ID类型时,您在jquery中传递了.<class>选择器。我建议您改用以下代码:

代码语言:javascript
复制
$("#days").html(days + "<br><span>days</span>");
$("#hours").html(hours + "<br><span>hours</span>");
$("#minutes").html(minutes + "<br><span>minutes</span>");
$("#seconds").html(seconds + "<br><span>seconds</span>");   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55309403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档