【问题标题】:Countdown Jquery is repeating倒计时Jquery正在重复
【发布时间】:2017-10-26 10:20:31
【问题描述】:

我正在使用 jquery 创建 90 年代倒计时。

但是倒计时在重复。

我试过了:

<script>
        var checkStatet = function(){
  jQuery.ajax({
    url: 'check_diffex.php?od=deotd'
  }).done(function(data){
      var o = data.diffex;
    var time = jQuery('#rbtntime');
    var timer = setInterval(function() {
  time.html(o);
  if (o == 0) {
    $('#rbtntimep').hide();
    clearInterval(timer);

  }
  o--;
}, 1000)
  });

}

checkStatet();
setInterval(checkStatet, 1000);
        </script>

<p>You need to wait <span id="rbtntime">90</span> before you can proceed</p>

check_diffex.php:

<?php
header('Content-Type: application/json');
$e = "90";
// You would calculate a real value here
echo json_encode([
  'diffex' => $e
]);
?>

我正在使用 jquery 创建 90 年代倒计时。

但是倒计时在重复。

【问题讨论】:

  • 您的文件是 check-diffex.php 还是 check_diffex.php ? $_POST 变量 od 的目的是什么?它可能正在重置,因为您在check-diffex.php 中设置了$e 而没有对od=deotd 做任何事情,或者它正在重置,因为它甚至找不到正确的页面.. 它甚至在重置吗?就像下降 1 秒然后回到 90?请更清楚您的问题。
  • 同时检查控制台日志。在我看来,这个问题应该结束并重写。
  • @WillParky93 $e 是由$_POST 计算出来的,我直接定义了$e
  • setInterval(checkStatet, 1); 您每 1 毫秒运行一次函数。
  • 我们所看到的 $e 是它被设置为 90,然后被输出。请不要跳过您的代码。它所要做的就是阻碍正确答案的进展

标签: javascript php jquery


【解决方案1】:

试试这个。删除最后一个setInterval

<script>
 var checkStatet = function(){
  jQuery.ajax({
    url: 'check_diffex.php?od=deotd'
  }).done(function(data){
      var o = data.diffex;
      var time = jQuery('#rbtntime');
      var timer = setInterval(function() {
         time.html(o);
         if (o == 0) {
            $('#rbtntimep').hide();
            clearInterval(timer);
         }
         o--;
      }, 1000)
   });
 }
 checkStatet();
</script>

【讨论】:

  • 谢谢,它对我有帮助。我们如何将这个倒计时转换为时间意味着,而不是显示 90 它应该显示 1:30, 80 - 1:20, 60 - 1:00, 50 - 0:50?
  • 由于我的声誉,我无法投票...我将创建一个新问题并将链接粘贴到此处。
  • 不需要问新问题,检查一下它会帮助你:stackoverflow.com/questions/3733227/…
猜你喜欢
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多