【问题标题】:getting timer to stop w/js or jq使用/js 或 jquery 让计时器停止
【发布时间】:2018-02-24 03:13:37
【问题描述】:

我正试图让我的时钟停在零,然后显示结果 pg。但现在我无法让它停下来。

var clock = {
time: 2,
timeleft: 0,
bigben: null,

countDown: function() {
    clock.time--;
    $("#timer").html(clock.time);
},
start: function() {
    bigben = setInterval(clock.countDown, 1000);
},
stop: function() {
    // clearInterval(intervalId);
    if (time == timeleft) {
        window.clearInterval(bigben);
        // Display countdown
        $('#timer').html(time + "seconds");
        time--
    }
    //end of timer
   if (time === timeleft) {
        window.clearInterval(bigben);
        gameOver();
    };
},

【问题讨论】:

    标签: javascript jquery time countdown countdowntimer


    【解决方案1】:

    您可以使用 setTimeout 函数。这个函数在时间为0时播放他的回调。

    setTimeout (function () { your code; }, 1000);
    

    1000 是以毫秒为单位的时间

    【讨论】:

      【解决方案2】:

      我没有看到你调用停止函数的任何地方。 在倒计时功能中添加clock.stop。 似乎在您的停止块中,“时间”、“时间左”和“大本”变量都无法访问.... 您需要改用clock.time、clock.timeleft、clock.bigben。

      试试下面。

      var clock = {
      time: 2,
      timeleft: 0,
      bigben: null,
      
      countDown: function() {
          clock.time--;
          $("#timer").html(clock.time);
          clock.stop();
      },
      start: function() {
          clock.bigben = setInterval(clock.countDown, 1000);
      },
      stop: function() {
      
          if (clock.time > clock.timeleft) {
      
              $('#timer').html(clock.time + "seconds");
      
          }
      
         if (clock.time === clock.timeleft) {
              window.clearInterval(clock.bigben);
              //gameOver();
          }
      }
      };
      clock.start();
      

      我注释掉了 gameOver() 调用,因为当前代码中没有该函数的定义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-22
        • 2023-04-11
        • 1970-01-01
        • 2011-05-04
        相关资源
        最近更新 更多