簡體   English   中英

您如何擺脫警報框並恢復操作流程? - Javascript

[英]How do you escape out of an alert box and resume flow of action? - Javascript

所以我正在編寫一個簡單的 javascript 計時器,並在 30 秒時提示用戶是否要重置倒計時或讓它繼續。 我可以重置計時器,但是當用戶單擊警報框上的取消時我會卡住。

我嘗試讓計時器在當前時間恢復,但這無濟於事,因為警報框只是不斷重新出現

我對 javascript 還是很陌生,所以我想繼續使用 vanilla js,直到我對基本原理有了更深入的了解!

任何指導將不勝感激!

這是我的代碼:

 function startTimer(duration, display) { var timer = duration, minutes, seconds; setInterval(function () { minutes = parseInt(timer / 60, 10); seconds = parseInt(timer % 60, 10); minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; display.textContent = minutes + ":" + seconds; if(timer<30){ var message = confirm("Would you like to extend timer?"); if (message == true) { timer = 60 * 1; } else{ timer = timer; } } if (--timer < 0) { timer = duration; } }, 1000); } function resetTimer() { timer = 60 * 1; } window.onload = function () { var fiveMinutes = 60 * 1, display = document.querySelector('#time'); startTimer(fiveMinutes, display); };

只需放置if(timer==30)而不是if(timer<30)以便恰好在 30 個單位的時間計數,您在該實例中被要求進行一次確認(但是請注意,在確認完成之前,提示將每秒都彈出)。 如果你延長它,它會再次等到你的計時器下降到 30 個單位,否則它只會下降到 0 並爆發。

function startTimer(duration, display) {
  var timer = duration,
    minutes,
    seconds;

  function timerFunc() {
    timer -= 1;
    minutes = parseInt(timer / 60, 10);
    seconds = parseInt(timer % 60, 10);

    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;

    display.textContent = minutes + ":" + seconds;

    if (timer == 30) {
      var message = confirm("Would you like to extend timer?");

      if (message == true) {
        timer = 60;
      } else return alert("Your timer has been stopped.")
    }
     setTimeout(timerFunc, 1000);
  }

  timerFunc();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM