从JavaScript中的另一个函数停止函数中的循环

MHD*_*uas 5 html javascript html5

我想在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>
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http: //jsfiddle.net/A5h8k/4/

Phi*_*ult 5

var static loop = 1;是无效的,var loop = 1;但是您开始了一个无限循环,因此您将无法以这种方式停止它。

使用setInterval代替

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

function stopLoop() {
    window.clearInterval(int);
}
Run Code Online (Sandbox Code Playgroud)