Javascript 调用函数时Jquery倒计时重置计时器

Javascript 调用函数时Jquery倒计时重置计时器,javascript,jquery,timer,reset,countdown,Javascript,Jquery,Timer,Reset,Countdown,我试图创建一个jquery脚本,它从调用函数时的20秒开始倒计时,然后在调用完成时重置。有办法做到这一点吗?使用setInterval被认为是一种不好的做法,因此最好像这样使用setTimeout: var timer = 20 * 1000; function loop() { if (timer > 0) { $('#countdown').html(timer / 1000); timer -= 1000; setTimeout( loop, 1000

我试图创建一个jquery脚本,它从调用函数时的20秒开始倒计时,然后在调用完成时重置。有办法做到这一点吗?

使用setInterval被认为是一种不好的做法,因此最好像这样使用setTimeout:

var timer = 20 * 1000;

function loop() {
  if (timer > 0) {
    $('#countdown').html(timer / 1000);
    timer -= 1000;
    setTimeout( loop, 1000 );
  } else {
    timer = 20 * 1000;
    $('#countdown').html(timer / 1000);
  }
}

loop();
试试这个

var total = 20
var counter = 20
var timer = setInterval(function() { 
   $('#Msg').text(counter--);
   if (counter == -1) {
      //clearInterval(timer);
       $('#Msg').text(total);
       counter=20;
   } 
}, 1000);

This should work for below html
<span id="Msg">20</span>
var总计=20
var计数器=20
var timer=setInterval(函数(){
$('#Msg')。文本(计数器--);
如果(计数器==-1){
//清除间隔(计时器);
$('#Msg').text(总计);
计数器=20;
} 
}, 1000);
这应该适用于下面的html
20
尝试以下内容

var timeVar = '', max = 20, starter = 0;

$("#btnStart").on("click",function(){
 timer();
});

function set (){
    if( max != starter){                        
        $(".timer").text((max).toString());
        max--;

        if(max == 0){
            max = 20;
        }
    }            
}

function timer(){
    timeVar = setInterval(set,500);          
}
在这里演奏小提琴:


我希望它能有所帮助。

查看js文档中的setTimeout()函数,请更具体一些。倒计时什么?内部还是可见的计数器?应该重置什么?对不起,是的。显示在“#div span”内的可见计数器,计时器完成倒计时后应复位。
var timeVar = '', max = 20, starter = 0;

$("#btnStart").on("click",function(){
 timer();
});

function set (){
    if( max != starter){                        
        $(".timer").text((max).toString());
        max--;

        if(max == 0){
            max = 20;
        }
    }            
}

function timer(){
    timeVar = setInterval(set,500);          
}