Javascript再次执行函数(倒计时)

Javascript再次执行函数(倒计时),javascript,html,Javascript,Html,我想再次运行我的代码(倒计时),在它已经运行了几次之后 Javascript: var btn1 = document.getElementById('btn1'); function timer() { var countdown = 1 * 60 * 1000; var timerId = setInterval(function() { countdown -= 1000; var min = Math.floor(countdown / (60 * 1000));

我想再次运行我的代码(倒计时),在它已经运行了几次之后

Javascript:

var btn1 = document.getElementById('btn1');
function timer() {
  var countdown = 1 * 60 * 1000;
  var timerId = setInterval(function() {
    countdown -= 1000;
    var min = Math.floor(countdown / (60 * 1000));
    var sec = Math.floor((countdown - (min * 60 * 1000)) / 1000);

    if (countdown <= -1) {
      //alert("30 min!");
      $(".countTime").html('<div class="countTime"><input type="button" id="btn1" value="Press me!"/></div>');
      clearInterval(timerId);
      //doSomething();
    } else {
      if(min > 0) {
        $(".countTime").html(min + " : " + sec);
      } else {
        $(".countTime").html(sec);
      }
    }

  }, 1000); //1000ms. = 1sec.
}
btn1.onclick = timer;
var btn1=document.getElementById('btn1');
函数计时器(){
var倒计时=1*60*1000;
var timerId=setInterval(函数(){
倒计时-=1000;
var min=数学楼层(倒计时/(60*1000));
var sec=数学楼层((倒计时-(分钟*60*1000))/1000);
如果(倒计时0){
$(“.countTime”).html(分钟+”:“+秒);
}否则{
$(“.countTime”).html(秒);
}
}
}, 1000); //1000毫秒1秒。
}
btn1.onclick=计时器;
HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="countTime">
  <input type="button" id="btn1" value="Press me!"/>
</div>

它只运行一次。按下按钮并再次运行倒计时不起作用。

问题在于

btn1.onclick = timer;
你必须像这样绑定click

$(document).on("click", btn1, function(){
 timer();
});
问题是

btn1.onclick = timer;
你必须像这样绑定click

$(document).on("click", btn1, function(){
 timer();
});

更改html将删除单击处理程序,因此您需要在将html更改回按钮后再次设置它

您可以使用
$(“#btn1”)执行此操作

因此,代码将成为

    ...
if (countdown <= -1) {
    //alert("30 min!");
    $(".countTime").html('<div class="countTime"><input type="button" id="btn1" value="Press me!"/></div>');
    $("#btn1").click(timer); // <-- rebinding click handler
    clearInterval(timerId);
    //doSomething();
} else {
   ...
。。。

如果(倒计时更改html会删除单击处理程序,因此您需要在将html更改回按钮后再次设置它

您可以使用
$(“#btn1”)执行此操作。单击(计时器);

因此,代码将成为

    ...
if (countdown <= -1) {
    //alert("30 min!");
    $(".countTime").html('<div class="countTime"><input type="button" id="btn1" value="Press me!"/></div>');
    $("#btn1").click(timer); // <-- rebinding click handler
    clearInterval(timerId);
    //doSomething();
} else {
   ...
。。。

如果(倒计时在倒计时0中添加了onclick事件){ $(“.countTime”).html(分钟+”:“+秒); } 否则{ $(“.countTime”).html(秒); } } }, 1000); //1000毫秒1秒。 }
在倒计时0中添加了onclick事件){ $(“.countTime”).html(分钟+”:“+秒); } 否则{ $(“.countTime”).html(秒); } } }, 1000); //1000毫秒1秒。 }
或者更好,
$(文档)。在('click','btn1',function(){…
或者更好,
$(文档)。在('click','btn1',function(){…