如何在Javascript中定义一个自动重启的简单倒计时

如何在Javascript中定义一个自动重启的简单倒计时,javascript,countdown,Javascript,Countdown,我需要一个简单的倒计时30秒,但我想当30秒结束后,倒计时再次开始 倒计时只开始一次,倒计时不会重新开始 我无法做到这一点,以下是我的代码: var i=1; 功能倒计时(选项){ var定时器, 实例=这个, 秒=选项。秒| | 10, updateStatus=options.onUpdateStatus | |函数(){}, counterEnd=options.onCounternd | |函数(){}; 函数递减计数器(){ 更新状态(秒); 如果(秒===0){ instance.

我需要一个简单的倒计时30秒,但我想当30秒结束后,倒计时再次开始

倒计时只开始一次,倒计时不会重新开始

我无法做到这一点,以下是我的代码:

var i=1;
功能倒计时(选项){
var定时器,
实例=这个,
秒=选项。秒| | 10,
updateStatus=options.onUpdateStatus | |函数(){},
counterEnd=options.onCounternd | |函数(){};
函数递减计数器(){
更新状态(秒);
如果(秒===0){
instance.stop();
对端();
返回;
}
秒--;
}
this.start=函数(){
定时器=0;
秒=选项。秒;
定时器=设置间隔(递减计数器,1000);
};
this.stop=函数(){
清除间隔(计时器);
};
}
var myCounter=新的倒计时({
秒数:5,//倒计时的秒数
onUpdate状态:函数(秒){$('#倒计时').html(秒);},//每秒回调
onCounterEnd:函数(){
myCounter.start();
}//最后行动
});
myCounter.start();
$(“#按钮”)。单击(函数(){
myCounter.start();
});  


重新启动
这是我过去使用过的


这是我过去用过的


这是我过去用过的


这是我过去用过的

希望这有帮助

希望这有帮助

希望这有帮助


希望这有帮助

只需对代码进行一些小的修改即可使其正常工作:

var i = 1;
function Countdown(options) {
  var timer,
  instance = this,
  seconds = options.seconds || 10,
  updateStatus = options.onUpdateStatus || function () {},
  counterEnd = options.onCounterEnd || function () {};

  function decrementCounter() {
    updateStatus(seconds);
    if (seconds === 0) {    
        seconds = 5;
    } else {
        seconds--;
    }
  }

  this.start = function () {
    clearInterval(timer);
    timer = 0;
    seconds = options.seconds;
    timer = setInterval(decrementCounter, 1000);
  };
}

var myCounter = new Countdown({  
    seconds: 5,  // number of seconds to count down
    onUpdateStatus: function(sec){$('#countdown').html(sec);}, // callback for each second
    onCounterEnd: function(){  myCounter.start(); } // final action
});

myCounter.start();

只需对代码进行一些小的修改即可使其正常工作:

var i = 1;
function Countdown(options) {
  var timer,
  instance = this,
  seconds = options.seconds || 10,
  updateStatus = options.onUpdateStatus || function () {},
  counterEnd = options.onCounterEnd || function () {};

  function decrementCounter() {
    updateStatus(seconds);
    if (seconds === 0) {    
        seconds = 5;
    } else {
        seconds--;
    }
  }

  this.start = function () {
    clearInterval(timer);
    timer = 0;
    seconds = options.seconds;
    timer = setInterval(decrementCounter, 1000);
  };
}

var myCounter = new Countdown({  
    seconds: 5,  // number of seconds to count down
    onUpdateStatus: function(sec){$('#countdown').html(sec);}, // callback for each second
    onCounterEnd: function(){  myCounter.start(); } // final action
});

myCounter.start();

只需对代码进行一些小的修改即可使其正常工作:

var i = 1;
function Countdown(options) {
  var timer,
  instance = this,
  seconds = options.seconds || 10,
  updateStatus = options.onUpdateStatus || function () {},
  counterEnd = options.onCounterEnd || function () {};

  function decrementCounter() {
    updateStatus(seconds);
    if (seconds === 0) {    
        seconds = 5;
    } else {
        seconds--;
    }
  }

  this.start = function () {
    clearInterval(timer);
    timer = 0;
    seconds = options.seconds;
    timer = setInterval(decrementCounter, 1000);
  };
}

var myCounter = new Countdown({  
    seconds: 5,  // number of seconds to count down
    onUpdateStatus: function(sec){$('#countdown').html(sec);}, // callback for each second
    onCounterEnd: function(){  myCounter.start(); } // final action
});

myCounter.start();

只需对代码进行一些小的修改即可使其正常工作:

var i = 1;
function Countdown(options) {
  var timer,
  instance = this,
  seconds = options.seconds || 10,
  updateStatus = options.onUpdateStatus || function () {},
  counterEnd = options.onCounterEnd || function () {};

  function decrementCounter() {
    updateStatus(seconds);
    if (seconds === 0) {    
        seconds = 5;
    } else {
        seconds--;
    }
  }

  this.start = function () {
    clearInterval(timer);
    timer = 0;
    seconds = options.seconds;
    timer = setInterval(decrementCounter, 1000);
  };
}

var myCounter = new Countdown({  
    seconds: 5,  // number of seconds to count down
    onUpdateStatus: function(sec){$('#countdown').html(sec);}, // callback for each second
    onCounterEnd: function(){  myCounter.start(); } // final action
});

myCounter.start();

您正在呼叫
计数器。回电话后请停止。因此,您正在开始,然后立即停止新计数器。像这样改变顺序

if (seconds === 0) {
  instance.stop();
  counterEnd();
  return; // don't want to decriment after counterEnd();
}

您正在呼叫
计数器。回电话后请停止。因此,您正在开始,然后立即停止新计数器。像这样改变顺序

if (seconds === 0) {
  instance.stop();
  counterEnd();
  return; // don't want to decriment after counterEnd();
}

您正在呼叫
计数器。回电话后请停止。因此,您正在开始,然后立即停止新计数器。像这样改变顺序

if (seconds === 0) {
  instance.stop();
  counterEnd();
  return; // don't want to decriment after counterEnd();
}

您正在呼叫
计数器。回电话后请停止。因此,您正在开始,然后立即停止新计数器。像这样改变顺序

if (seconds === 0) {
  instance.stop();
  counterEnd();
  return; // don't want to decriment after counterEnd();
}
写这篇文章只是为了好玩:

写这篇文章只是为了好玩:

写这篇文章只是为了好玩:

写这篇文章只是为了好玩:


你有html代码显示吗?@Strange90只需删除clearInterval(计时器);从这个.start=(…是的,这是可行的,但是倒计时从4开始,而不是从5开始,我编辑了代码以便您可以在代码段上看到您是否还有html代码要显示?@Strange90只需删除clearInterval(timer);从这个.start=(…是的,这是可行的,但是倒计时从4开始,而不是从5开始,我编辑了代码,以便您可以在代码段上看到您是否还有html代码要显示?@Strange90只需删除clearInterval(计时器);从此处开始=(…是的,这是可行的,但是倒计时从4开始,而不是从5开始,我编辑了代码,以便您可以在代码段上看到您是否还有html代码要显示?@Strange90只需删除clearInterval(计时器);从此处开始=(…是的,这是可行的,但是倒计时从4开始,而不是从5开始,我编辑了代码,这样你就可以在代码段上看到这很好,但是例如,如果我在另一个地方使用myCounter.start(),它不能正常工作,请查看编辑过的帖子这很好,但是如果我使用myCounter.start())在另一个地方,它不能正常工作,请查看编辑的帖子。这可以正常工作,但是,例如,如果我在另一个地方使用myCounter.start(),它不能正常工作,请查看编辑的帖子。这可以正常工作,但例如,如果我在另一个地方使用myCounter.start(),它不能正常工作,请查看编辑的帖子