Javascript SetInterval 60秒倒计时问题jQuery

Javascript SetInterval 60秒倒计时问题jQuery,javascript,jquery,Javascript,Jquery,我尝试在单击开始按钮后倒计时60秒,在0时,我不想只是隐藏计数器,我希望它被重置。我遇到了两个问题: 当我再次单击开始按钮时,它不会重新开始。 单击“开始”按钮开始倒计时后,“开始”按钮不会被禁用。 在倒计时时,当我按下开始按钮时,它会加速倒计时。 感谢您的帮助,以下是代码: function begin() { $('#begin').prop('disabled'); myTimer = setInterval(function() { $('#timing').

我尝试在单击开始按钮后倒计时60秒,在0时,我不想只是隐藏计数器,我希望它被重置。我遇到了两个问题: 当我再次单击开始按钮时,它不会重新开始。 单击“开始”按钮开始倒计时后,“开始”按钮不会被禁用。 在倒计时时,当我按下开始按钮时,它会加速倒计时。 感谢您的帮助,以下是代码:

function begin() {
    $('#begin').prop('disabled');
    myTimer = setInterval(function() {
      $('#timing').html(timing);
      if (timing === 0) {
        alert('Too late! Try again');
        clearInterval(myTimer);
        $('#timing').hide();
      }
      timing--;
    }, 1000);
  }

您有几个问题:

  • 您需要
    .prop(“disabled”,true)
    来禁用按钮
  • 重新启动计时器时,需要重置
    定时
    变量
  • 您需要在计时器结束时启用该按钮,以便再次按下
  • 启动计时器时,需要显示初始计数
  • 代码:


    工作演示(间隔时间更短,因此倒数更快):

    @Amah-因为看起来您可能对StackOverflow比较陌生,您是否意识到当您得到问题的答案时,您应该通过勾选答案左侧的绿色复选标记来标记最佳答案。这向社区表明,您的问题已经得到了回答,并为您和提供答案的人赢得了一些声誉积分。
    var timing;
    var myTimer;
    
    function begin() {
        timing = 60;
        $('#timing').html(timing);
        $('#begin').prop('disabled', true);
        myTimer = setInterval(function() {
          --timing;
          $('#timing').html(timing);
          if (timing === 0) {
            alert('Too late! Try again');
            clearInterval(myTimer);
            $('#begin').prop('disabled', false);
          }
        }, 1000);
     }