有没有人能解释一下为什么我不能停止和开始这个循环?
<input type="button" value="start" onclick="start()">
<input type="reset" value="stop" onClick="stop()">
var startLottery = false;
while(startLottery){
setInterval(function(){automateLottery()},120);
startLottery;
};
var start = function(){
startLottery = true;
};
var stop = function(){
startLottery = false;
};
谢谢
不能像这样开始和停止循环。您需要使用setInterval
和clearInterval
:
JS:
var lotteryInterval;
var start = function(){
lotteryInterval = setInterval(lotteryFunc, 120);
};
var stop = function(){
clearInterval(lotteryInterval);
};
var lotteryFunc = function () {
automateLottery();
};
HTML: <input type="button" value="start" onclick="start()">
<input type="reset" value="stop" onClick="stop()">
编辑:工作演示
问题1
while
循环只在操作数求值为true
时执行。
但是,一开始你的startLottery
变量等于false
。
所以while
循环永远不会执行。
问题2
在任何情况下,您都不会更改startLottery
变量的值,因此即使执行了循环,它也永远不会终止。
我相信你正在寻找这个(假设你有一个automateLottery
函数):
var timer;
var start = function(){
timer = setInterval(automateLottery, 120);
};
var stop = function(){
clearInterval(timer);
};
start();
如果您提供的代码与我看到的完全一样,则永远不会进入while
循环。将渲染页面(input
s),然后将变量startLottery
设置为false
。接下来,循环将计算表达式(它将始终返回false
),而不会实际进入循环。