[英]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.