请帮助获得一个正确的函数或方法来停止setTimeout函数。
我一直在尝试使用以下代码,但setTimeout“循环”无法停止。我要做的是每5秒获取用户的当前位置,然后按下停止按钮。它就不能确定位置了。
function geoTrackstart(){
//geolocation code
});
timer = setTimeout(geoTrackstart, 5000);
}
function geoTrackstop(){
clearTimeout(geoTrackstart);
timer = 0;
}发布于 2015-02-05 18:06:06
我想你想这样用:
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
}发布于 2015-02-05 18:10:42
如果您正在轮询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);https://stackoverflow.com/questions/28350947
复制相似问题