请帮助获取正确的函数或方法来停止setTimeout函数。
我一直尝试使用以下代码,但是setTimeout"循环"无法阻止。 我想要做的是每隔5秒获取用户当前位置,然后按下停止按钮。它停止了获取位置。
function geoTrackstart(){
//geolocation code
});
timer = setTimeout(geoTrackstart, 5000);
}
function geoTrackstop(){
clearTimeout(geoTrackstart);
timer = 0;
}
答案 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);