停止setTimeOut();

时间:2015-02-05 18:03:51

标签: javascript

请帮助获取正确的函数或方法来停止setTimeout函数。

我一直尝试使用以下代码,但是setTimeout"循环"无法阻止。 我想要做的是每隔5秒获取用户当前位置,然后按下停止按钮。它停止了获取位置。

   function geoTrackstart(){  
//geolocation code
}); 
 timer = setTimeout(geoTrackstart, 5000);
}

function geoTrackstop(){
  clearTimeout(geoTrackstart);
            timer = 0;
}

2 个答案:

答案 0 :(得分:1)

我想你想这样用:

function geoTrackstart(){  
   //geolocation code
}); 
timer = setTimeout(geoTrackstart, 5000);//set timer

function geoTrackstop(){
  clearTimeout(timer);//clear the timer
  //setTimeout(geoTrackstart,5000);//set timeout if you want to run again
}

答案 1 :(得分:0)

如果您正在轮询geo,我会使用一个间隔而不是超时,以便它每5秒运行一次,直到你停止它,这样你就不必每5秒创建一个新的超时 - 除非你想手动创建超时。:

var geoFetchInterval;
function geoTrackstart(); {};

//if you want it to run immediately the first time
geoTrackStart(); 

//start the interval
geoFetchInterval = setInterval(geoTrackStart, 5000);

function getTrackStop() {
  clearInterval(geoFetchInterval);
};

//assuming jquery
$('#stop-button').on('click', getTrackStop);