簡體   English   中英

按按鈕開始編碼,然后按停止

[英]Press button to start code and press it to stop

我想做到這一點,所以當我按下按鈕時,它就會運行

window.setInterval(function(){
               if (recources > 0.5) {
               nuggets = nuggets +  nuggetsPS
               document.getElementById('nuggets').innerHTML = prettify(nuggets);
               }

               }, 1000);

當我再次按下按鈕時,它將停止代碼。
所以基本上我想讓代碼在用戶按下按鈕時運行,並在用戶再次按下按鈕時停止
我是Js的新手,需要幫助。

正如其他人在評論中所說,可以使用setInterval來啟動一個間隔,並使用clearInterval來停止一個間隔。 setInterval調用的返回值傳遞給clearInterval調用,如下所示:

var intervalTracker;
var start = function() {
    intervalTracker = window.setInterval(function(){
       if (recources > 0.5) {
           nuggets = nuggets +  nuggetsPS
           document.getElementById('nuggets').innerHTML = prettify(nuggets);
       }
   }, 1000);
}
var stop = function() {
    window.clearInterval(intervalTracker);
}

setInterval返回一個ID,然后可以將其傳遞給clearInterval ,它將停止執行。 因此,您可以使用一個函數來開始執行,而另一個函數來停止執行。 像這樣:

var intervalId;
function startExecution() {
  intervalId = setInterval(function(){
    //do stuff
  },1000);
}

function stopExecution() {
  clearInterval(intervalId);
  intervalId = 0;
}

然后,您可以將事件偵聽器綁定到按鈕以進行切換:

$('.button').click(function() {
  if (!!intervalId) {
    // If there is a truthy (non-zero) intervalId, start execution
    startExecution();
  } else {
    stopExecution();
  }
})

暫無
暫無

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

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