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

そのようなループを開始および停止することはできません。あなたは使用する必要があり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()">

編集:作業デモ

于 2013-01-04T18:39:47.300 に答える
2

問題1

ループは、オペランドが に評価されたwhile場合にのみ実行されtrueます。

ただし、startLottery変数が に等しいことから始めますfalse

したがって、whileループは決して実行されません。

問題 2

変数の値を実際に変更することはないstartLotteryので、ループが実行されたとしても、終了することはありません。

于 2013-01-04T18:36:29.023 に答える
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 に答える