我正在为我的算法类(在 Javascript 中)创建数独创建者的可视化。该算法效果很好,但我无法找到暂停执行的方法。
目前,我习惯于prompt()
暂停,但这既笨重又烦人。while
除了连续循环之外,有没有办法暂停直到另一个函数运行(通过 HTML 按钮) ?
我可以发布代码,但我认为不需要。我目前没有使用 jQuery,但如果需要我可以。
我正在为我的算法类(在 Javascript 中)创建数独创建者的可视化。该算法效果很好,但我无法找到暂停执行的方法。
目前,我习惯于prompt()
暂停,但这既笨重又烦人。while
除了连续循环之外,有没有办法暂停直到另一个函数运行(通过 HTML 按钮) ?
我可以发布代码,但我认为不需要。我目前没有使用 jQuery,但如果需要我可以。
var flag = true;
function foo(){
if (flag){
// Do your magic here
...
...
setTimeout(foo, 100);
}
}
function stop(){
flag = false;
}
<input type="button" onclick="stop();" value="stop it!!!" />
如果您要暂停的是一个会继续循环的函数,那么我想出了一个很好的解决方案:
HTML
<div id="stuff">Doing stuff</div>
<button id="pause">Pause/Resume</button>
JS
var paused = false;
document.getElementById('pause').addEventListener('click', function() {
paused = !paused;
if (!paused) {
next();
}
});
function doStuff() {
// Do whatever you want here, then invoke next() for the next iteration of that function, for example:
// (Note that the window.setTimeout is NOT part of the solution)
window.setTimeout(function() {
document.getElementById('stuff').append('.');
next();
}, 300);
}
function next() {
if (!paused) {
doStuff();
}
}
doStuff();
代码笔: https ://codepen.io/liranh85/pen/baVqzY ?editors=1010