だから私のHMTL eventhandelingボタンがイベントハンドラがクリックされたら、JavaScriptコードを停止するにはどうすればよいですか?
<input type="button" value="Stop" onclick="stop()">
で、JavaScript関数stop()
は次のとおりです。
function stop()
{
stop.called = true;
}
と私はここに、この関数を呼び出す:
....
var interval = setInterval(function()
{
// call generation again for each generation, passing in the previous generations best offspring
best_offspring = generation(best_offspring, characters, amount_offspring, mutation_rate, target_text);
document.getElementById("output_text").value = best_offspring;
document.getElementById("generations").value = generations;
if (score_met)
{
clearInterval(interval);
}
}, delay);
if (stop.called)
{
return;
}
// so that we know that the program has been run atleast once
start = true;
}
あなたはより多くのコードが必要です?
とにかく、私が望むのは、関数が呼び出されたときに実行を停止することです。しかし、私のinterval
ループは、stop()
関数が呼び出されても継続します。私も'if(stop.called)inside
var interval`ループを入れようとしました。しかし、それはどちらかの仕事でもありませんでした。
アイデア?私はより多くの情報を提供する必要がありますか?
私は 'setInterval'関数の中に' if(stop.called) 'を置くまでこれを試していませんでした。どうして? –