Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запуск setTimeout по кнопке 1 раз (https://javascript.ru/forum/misc/72827-zapusk-settimeout-po-knopke-1-raz.html)

pokk 01.03.2018 12:22

Запуск setTimeout по кнопке 1 раз
 
Добрый, день подскажите как сделать по феншую, есть несколько кнопок по одной кнопке должен запускаться, периодический запрос, а остальные, кнопки останавливают его, это я все сделал как-то так
//-----------------------------------------
					timerId = setTimeout(function tick() {
					  GetPage('GetPageVar.CGI');
					  timerId = setTimeout(tick, 1000);
					}, 1000);		   
					//-----------------------------------------

Но тут получилось что, если по стартовой кнопке если нажать несколько раз
то setTimeout устанавливается несколько раз, как сделать блокировку этого по феншую, сделал как-то так.
if(TimerStop==0){
					TimerStop=1;
					//-----------------------------------------
					timerId = setTimeout(function tick() {
					  GetPage('GetPageVar.CGI');
					  timerId = setTimeout(tick, 1000);
					}, 1000);		   
					//-----------------------------------------
				}

через раз все это работает(особенно если страницу обновить, дальше срабатывает эмуляция нажатия кнопки)

Nexus 01.03.2018 15:59

clearTimeout(timerId||0);
timerId = setTimeout(function tick() {
    GetPage('GetPageVar.CGI');
    timerId = setTimeout(tick, 1000);
}, 1000);

pokk 02.03.2018 06:21

Как все просто, однако!! Благодарю!!


Часовой пояс GMT +3, время: 22:32.