clearTimeout()在for循环中不起作用
for(i=0;i<10;i++){
myVar = setTimeout(function(){
alert("Hello")
}, 3000);
}小提琴:not working
小提琴:working
请帮助我阻止setTimeout()在第一次飞行。
发布于 2014-08-14 15:30:42
您必须保留对循环中创建的每个超时的引用,然后迭代和清除每个超时,否则您只是用一个新的超时覆盖myVar,而不清除前面的超时,并且在执行过程中丢失引用等等。
$(document).ready(function(){
var myVar = []
$("#myfunction").click(myFunction);
$("#mystopfunction").click(myStopFunction);
function myFunction() {
for(i=0;i<10;i++){
myVar.push(
setTimeout(function(){
alert("Hello")
}, 3000)
);
}
}
function myStopFunction() {
myVar.forEach(function(timer) {
clearTimeout(timer);
});
}
});FIDDLE
https://stackoverflow.com/questions/25311892
复制相似问题