2013-04-10 16 views
5

JavaScript'teki başka bir işlevden bir işlevde bir döngü durdurmak istiyorum. İşteJavaScript'te başka bir işlevden bir işlevdeki bir döngüyü durdurma

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

keman edilir: Burada denedim kodu Bu var static loop = 1; geçersiz http://jsfiddle.net/A5h8k/4/

+3

Yapamazsınız; JavaScript tek iş parçacıklı olduğundan, döngü sırasında başka hiçbir şeyin yürütülmesi mümkün değildir. –

cevap

4

, var loop = 1;, ama bunu durdurmak mümkün olmayacaktır böylece, sonsuz döngü başlar bu yoldan.

Kullanım setInterval yerine

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

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

Lütfen bana bir örnek verebilir misiniz? – MHDaouas

+0

Gönderiyi düzenledim –

+0

Bunun gibi tırnaklar varsa, işleviniz çağrılmayacak. İşlevi iletmek için alıntıları kaldırın. Ayrıca, 'self' bir standart değişken mi? –

İlgili konular