1

任何人都可以解释为什么我不能停止并开始这个循环吗?

 <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;   
};

谢谢

4

4 回答 4

2

问题 1

只有当while操作数的计算结果为 时,才会执行循环true

但是,您开始时startLottery变量等于false

所以while循环永远不会执行。

问题 2

在任何时候你都没有真正改变startLottery变量的值,所以即使循环确实执行了,它也永远不会终止。

于 2013-01-04T18:36:29.023 回答
2

您无法启动和停止这样的循环。您需要使用setIntervalclearInterval

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()">

编辑:工作演示

于 2013-01-04T18:39:47.300 回答
0

我相信你正在寻找这个(假设你确实有一个automateLottery功能):

var timer;

var start = function(){
    timer = setInterval(automateLottery, 120);
};

var stop = function(){
    clearInterval(timer);
};

start();
于 2013-01-04T18:40:17.847 回答
0

如果您提供的代码与我看到的完全一样,while则永远不会进入循环。页面将被呈现(inputs),然后变量startLottery将设置为false。接下来,循环将评估表达式(将始终返回false)并且永远不会真正进入循环。

于 2013-01-04T22:54:51.430 回答