2015-02-05 3 views
0

, пожалуйста, помогите с получением правильной функции или метода, чтобы остановить функцию setTimeout.остановка setTimeOut();

Я пробовал со следующими кодами, но setTimeout «loop» не мог быть остановлен. То, что я пытаюсь сделать, - это получить текущее местоположение пользователя каждые 5 секунд, а затем, когда я нажму кнопку остановки. Он перестает получать местоположение.

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

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

Google свой заголовок вопроса ... – August

+0

@August Думаешь, он был просто запрещено использовать Google. И нет других поисковых систем ... –

ответ

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 
} 
0

Если вы опроса для гео я бы использовать интервал, а не тайм-аут, так что он не будет работать каждые 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); 
Смежные вопросы