Как решить проблему с таймером?
Здравствуйте. Подскажите пожалуйста.
Есть кнопка, по нажатию на которую запускается таймер, который срабатывает через 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> Если вы знаете решение этот проблемы с помощью замыкания и цыклов - я только за. |
<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 |
спасибо, плюсонул
|
| Часовой пояс GMT +3, время: 19:04. |