如何将setTimeout与“设置超时”一起使用;“边做边做”;Javascript中的循环?

如何将setTimeout与“设置超时”一起使用;“边做边做”;Javascript中的循环?,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我试图对一个跨度元素(#30)进行30秒倒计时,该元素将在单击另一个元素(#开始)时开始。它似乎不起作用。谢谢你的帮助 var countdown = function() { setTimeout(function() { var i = 30; do { $("#thirty").text(i); i--; } while (i > 0); }, 1000); } $("#start-timer").click(countdow

我试图对一个跨度元素(#30)进行30秒倒计时,该元素将在单击另一个元素(#开始)时开始。它似乎不起作用。谢谢你的帮助

var countdown = function() {
  setTimeout(function() {
    var i = 30;
    do {
      $("#thirty").text(i);
      i--;
    } while (i > 0);
  }, 1000);
}

$("#start-timer").click(countdown());
使用以下命令:

var i = 30;
var countdown = function() {
  var timeout_ = setInterval(function() {
      $("#thirty").text(i);
      i--;
      if(i==0){
         i = 30;
         clearInterval(timeout_);
      }
  }, 1000);
}

$("#start-timer").click(countdown);

$(“#启动计时器”)。单击(倒计时)您应该使用计时器。看看这篇文章:除了@Raj的评论,使用
setInterval()
,把
var i=30
放在回调之外,去掉
do/while
循环,当
i==0
时使用
clearInterval(interavail)