Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2013, 19:28
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Как решить проблему с таймером?
Здравствуйте. Подскажите пожалуйста.
Есть кнопка, по нажатию на которую запускается таймер, который срабатывает через 3 секунды, после чего вызывается анимация(в данном случае пускай будет console.log(1)). Если, до того, как сработал таймер, то есть до 3-х секунд я нажму на кнопку еще раз, то мне нужно остановить/отменить выполнение этого таймера и начать выполнять этот же таймер, только с нуля, то есть каждое нажатие по кнопки - прерывает выполнение таймера и включает его заново.
Вот примерный код, в данному случает если я быстро нажимаю на кнопку, то срабатывают столько таймеров, сколько я раз нажал на кнопку, а нужно, чтоб срабатывал только последний таймер, то есть тот, который включился при последнем моем нажатии.
$('#btn').click(function () {
		test();
	});		
	
	function test() {
        setTimeout(function () {
		    console.log('1'); 
		}, 3000);			
	}


Спасибо за уделенное время.

<b>p.s. 1</b> Можно использовать jquery, хотя смысла в этом не вижу...
<b>p.s. 2</b> Если вы знаете решение этот проблемы с помощью замыкания и цыклов - я только за.
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2013, 20:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<script src="http://code.jquery.com/jquery-latest.js"></script>
<input id=btn type="button" />
<script>
$('#btn').click(function () {
      test($(this));
});		
var Id0Timeout;	
function test(a) {
      clearTimeout(Id0Timeout);
          Id0Timeout= setTimeout(function () {
              alert('a1');
          }, 3000);
}
</script>
script
Ответить с цитированием
  #3 (permalink)  
Старый 30.01.2013, 11:12
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

спасибо, плюсонул
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
как сделдать меню из двух калонок как в bestchange.ru Андрей Лебедев Элементы интерфейса 2 21.01.2013 10:32
8 != 8 ??? Как решить? OklickSpb Общие вопросы Javascript 3 05.12.2012 08:12
При активации Disqus, не работает Nivo slider, как решить проблему? pinkfloyd Общие вопросы Javascript 0 30.05.2011 15:29
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57