簡體   English   中英

如何停止 function 再次執行,直到經過一定時間

[英]how to stop function from executing again until a certain time has passed

我有一個 function 在您單擊按鈕時運行。 但是我不希望 function 再次執行,直到某個時間過去。 例如,倒計時已經結束。 如果再次單擊該按鈕,則 function 不應運行。

$("start").on('click', function() {
  var myTimer;

  function clock() {
    myTimer = setInterval(myClock, 1000);
    var c = 5;

    function myClock() {
      document.getElementById("demo").innerHTML = --c;
      if (c == 0) {
        clearInterval(myTimer);
        alert("Reached zero");
      }
    }
  }
});

首先刪除clock() function。 鑒於您的代碼結構,它沒有任何用途。 其次,如果你要使用jQuery之類的框架,要保持一致。

要解決實際問題,請存儲 boolean 標志以確定時間是否正在運行。

 let $demo = $('#demo'); $("#start").on('click', function() { let $button = $(this); if ($button.data('running')) return; // do nothing $button.data('running', true); let myTimer = setInterval(myClock, 1000); let c = 5; $demo.html(c); function myClock() { $("#demo").html(--c); if (c == 0) { $button.data('running', false); clearInterval(myTimer); console.log("Reached zero"); } } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button id="start">Start</button> <div id="demo"></div>

暫無
暫無

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

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