【问题标题】:Javascript Countdown Timer does not resetJavascript倒数计时器不重置
【发布时间】:2013-10-23 09:51:17
【问题描述】:

我正在编写一个测验风格的应用程序,其中每个问题都有一个倒数计时器运行。在倒计时结束时,应用程序会转到下一个问题。但是,在回答问题时,计时器应该重置。它不这样做,而是创建一个新的计时器,所以一旦第一个计时器达到零,它就会转到下一个问题,这是它不应该做的。我正在使用http://www.gieson.com/Library/projects/utilities/countdown/ 的倒数计时器,我的代码如下:

<script type="text/javascript">
    window.countdown = '';

    function resetTimer()
    {
        window.countdown = new Countdown({ 
            time: 30,
            inline: true,
            rangeHi  : "minute",
            target: "timer",
            width: 50,
            height: 30,
            onComplete : skipQuestion
         });
    }
</script>

每次回答问题时(或当计时器用完并调用skipQuestion() 时),我都会调用函数resetTimer()。我的 JavaScript 不是那么好,所以我没有尝试联系倒数计时器的开发人员,而是希望这里有大量知识渊博的人可以告诉我如何让它工作。

提前谢谢你。

【问题讨论】:

    标签: javascript timer reset


    【解决方案1】:

    你应该打电话

    window.clearInterval(window.countdown);
    

    停止正在运行的计时器。每当您调用 resetTimer() 时,您的代码都会创建一个新时间,因此您的函数应称为 createTimer();

    【讨论】:

    • 感谢您的输入,很遗憾 clearInterval 不起作用。我不认为倒数计时器使用 SetInterval。
    • 我现在所做的是在调用 new Countdown 之前在函数 resetTimer() 中添加了一行。我尝试过 window.clearInterval(window.countdown)、clearInterval(window.countdown)、window.clearTimeout(window.countdown) 和 clearTimeout(window.countdown)。这些都没有奏效,原来的计时器仍在继续。如果我没有正确理解您的答案,您能否详细说明?请记住我的javascript不太好。
    【解决方案2】:

    我找到了解决方案。只需调用 window.countdown.init() 即可重置计时器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      相关资源
      最近更新 更多