[英]React.js - How to stop setInterval and resume it after click
[英]How to stop setInterval and resume?
如何停止setInterval然后从同一个地方恢复?
例:
start ---> 1,2,3,4,5 .... ---> stop ---> start ---> 6,7,8 ...
的index.html
<div onclick=start()>start</div>
<div onclick=stop()>stop</div>
index.js
let refreshInterval = null;
start() {
var i = 0;
refreshInterval = setInterval(function() {
console.log(i);
i++;
}, 1000);
}
stop() {
???????
}
您需要一个全局变量i
并用于停止clearInterval
。
function start() { if (refreshInterval !== undefined) return; // prevent more than one interval refreshInterval = setInterval(function() { console.log(i); i++; }, 1000); } function stop() { clearInterval(refreshInterval); refreshInterval = undefined; } var refreshInterval, i = 0;
<div onclick="start()">start</div> <div onclick="stop()">stop</div>
您可以将count变量保留在外部作用域中,这样每次运行start
函数时都不会重置
let refreshInterval = null; let count = 0 function start() { refreshInterval = setInterval(function() { document.getElementById('value').innerText = count count++; }, 1000); document.getElementById('start').disabled=true } function stop() { clearInterval(refreshInterval) document.getElementById('start').disabled=false }
#counter{ padding: 0.25rem; font-size: 1.25rem; border: 1px solid black; margin-bottom: 1rem; }
<div id='counter'><span>counter:</span> <span id='value'/>0</div> <button onclick=start() id='start'>start</button> <button onclick=stop() id='stop'>stop</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.