Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2014, 01:33
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

остановить таймер
В одном из методов запускаю таймер командой.
a1 = setTimeout(Change, tt * 500);
При нажатии на кнопку запускается функция в которой этот таймер останавливается кодом
clearTimeout(a1);
Почему не работает?
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2014, 01:51
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

setTimeout выполняет код только один раз
http://javascript.ru/setTimeout
Ответить с цитированием
  #3 (permalink)  
Старый 24.11.2014, 02:01
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

Блин, просмотрел. Пытаюсь через флаг.
if (viiti == 1){
                return;
            }

viiti присваиваю 1, там где раньше был clearTimeout. Тоже что-то не очень.
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2014, 05:34
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Vladimir93, может Вы имели ввиду setInterval?
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2014, 10:37
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

У меня происходит рекурсия, поэттому сдесь setTimeout нужно
Change();
        function Change() {
            if (viiti == 1){
                return ;
            }
            else {
                var cc = CLR.shift();
                CLR.push(cc);
                var tt = TMR.shift();
                TMR.push(tt);
                d.style.backgroundColor = (cc.charAt(0) == 1) ? '#FF0000' : '';
                d1.style.backgroundColor = (cc.charAt(1) == 1) ? '#FFFF00' : '';
                d2.style.backgroundColor = (cc.charAt(2) == 1) ? '#00FF00' : '';
                setTimeout(Change, tt * 500);
            }

        }
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2014, 15:29
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Change();
        function Change() {
            if (viiti == 1){
                return ;
            }
            else {
                var cc = CLR.shift();
                CLR.push(cc);
                var tt = TMR.shift();
                TMR.push(tt);
                d.style.backgroundColor = (cc.charAt(0) == 1) ? '#FF0000' : '';
                d1.style.backgroundColor = (cc.charAt(1) == 1) ? '#FFFF00' : '';
                d2.style.backgroundColor = (cc.charAt(2) == 1) ? '#00FF00' : '';
                *!*a1 = */!* setTimeout(Change, tt * 500);
            }

        }
Кабэ очевидно. Таймаут то уже другой.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить таймер setInterval Орёл Общие вопросы Javascript 8 11.01.2015 22:07
не могу остановить setinterval harley jQuery 3 09.09.2014 13:36
Обновляемый таймер на javascript smillyhamster Общие вопросы Javascript 1 31.12.2013 10:30
Таймер обратного отчёта с выполнение по времени xakerd Элементы интерфейса 1 20.03.2013 00:10
Зацикленный таймер jacko Общие вопросы Javascript 2 01.07.2012 14:32