在连续调用的函数中的setTimeout

时间:2014-04-08 01:00:50

标签: javascript jquery

我有一个用户拖动鼠标时调用的函数。该函数的作用与此无关,但称为loadTiles();

我想要的是在用户拖动期间每1000毫秒调用一次该函数。但是,如果我执行以下操作,则会在整个拖动过程中不断启动setTimeout:

window.ontouchmove = function(){
  setTimeout(function(){ loadTiles(); },1000);
};

有没有办法让setTimeout真正倒数1000毫秒不间断,并继续重置计数再次像setInterval

1 个答案:

答案 0 :(得分:2)

您可以设置一个布尔变量以查看它是否已运行。

var isrun=false;
window.ontouchmove = function(){
if(isrun==false){
isrun=true;
setTimeout(function(){ loadTiles(); },1000);
}
};

然后在你的loadTiles函数集中,isrun在结尾处返回false