如何重置jQuery中的倒计时?

时间:2016-02-10 12:41:02

标签: jquery

嗨我有以下代码,它将倒计时3秒。但是当为0时我想重置秒数,当我再次调用此函数开始计数时。

var seconds = 3;
var second = 0;
var interval;

function countdown(){
    $("#counterOverlay").fadeTo(1000, 1);
    $("#counter").fadeTo(1000, 1);
    interval = setInterval(function() {
        $("#counter").text((seconds - second));
        if (second >= seconds) {
            playVideo();
            clearInterval(interval);
        }
        second++;
    }, 1000);
}

2 个答案:

答案 0 :(得分:0)

在函数内初始化second并更改此函数。

var seconds = 3;
var second;
var interval;

function countdown(){
    second = 0;
    $("#counterOverlay").fadeTo(1000, 1);
    $("#counter").fadeTo(1000, 1);
    interval = setInterval(function() {

        if (second < seconds) {
            $("#counter").text((seconds - second));
            playVideo();
            clearInterval(interval);
        }
        second++;
    }, 1000);
}

每次调用函数时都会重置第二个。

答案 1 :(得分:0)

您需要重置second变量的值。

var interval = setInterval(function() {
    $("#counter").text((seconds - second));
    second++;
    if (second == seconds) {
        second = 0;
    }
}, 1000);

&#13;
&#13;
var seconds = 3;
var second = 0;
var interval;


$("#counter").fadeTo(1000, 1);
var interval = setInterval(function() {
  $("#counter").text((seconds - second));
  second++;
  if (second == seconds) {
    second = 0;
  }
}, 1000);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="counter">a</div>
&#13;
&#13;
&#13;

注意:我故意删除了以下代码段,以简化操作。

    if (second >= seconds) {
        playVideo();
        clearInterval(interval);
    }