2013-04-10 9 views
5

JavaScript内の別の関数の関数でループを停止したいとします。ここでJavaScript内の別の関数の関数でループを停止する

<a onmousedown="startLoop();" onmouseup="stopLoop();" > 
    Start loop 
</a> 

<script> 
var static loop = 1; 

function startLoop() { 
    while(loop ==1) { 
    } 
    alert("stop"); //This line is not executed 
} 

function stopLoop() { 
    loop = 2; 
} 
</script> 

フィドルされています:ここで私が試したコードです。このvar static loop = 1;が無効である http://jsfiddle.net/A5h8k/4/

+3

あなたがすることはできません。 JavaScriptはシングルスレッドなので、あなたのループが実行されている間は何も実行できません。 –

答えて

4

var loop = 1;が、あなたはそれを停止することができなくなりますので、あなたは、無限ループを開始しますこちらです。

使用setInterval代わり

var int = self.setInterval(function(){myLoop()},100); 
function myLoop() { 
    //do stuff 
} 

function stopLoop() { 
    window.clearInterval(int); 
} 
+0

私に例を教えてください。 – MHDaouas

+0

私の投稿を編集しました –

+0

そのような引用符があれば、あなたの関数は呼び出されません。関数を渡す引用符を削除します。また、 'self'は標準変数ですか? –

関連する問題