Страница 1 из 1

Не обрабатывать первый клик пока не завершится первый

СообщениеДобавлено: 21 мар 2012, 18:35
battrack
Есть такая задача:
Элемент (например div) должен двигаться влево по клику по кнопке.
Кликнули по кнопке, скрипт изменил свойство элемента left на определенный шаг. Все ок.
Необходимо чтобы после клика по кнопке, пока объект не перестанет двигаться, кнопка не реагировала бы на другой клик по ней. Т.е. грубо говоря, пока обрабатывается первый клик (происходит какая-то анимация и т.п.), на еще один клик кнопка не должна реагировать. Как анимация завершится, кнопка снова может обрабатывать клик. Не знаю как это сделать.
Если несколько раз кликнуть по кнопке быстро, то все обработчики становятся в очередь и обрабатываются. В итоге если быстро кликнули по кнопке три раза, то элемент переместится на 3 шага. А мне жизненно важно чтобы элемент перемещался на один шаг. Как только шаг завершится, кнопка доступна для еще одного клика и т.д.
Вариант со скрытием кнопки, пока идет анимация, не подходит.

Как быть? Можно ли из многочисленных кликов по кнопке обрабатывать только первый клик? А остальные клики не выстраивать в очередь. Как только завершится код внтри обработчика клика, то по кнопке снова можно кликать???

Re: Не обрабатывать первый клик пока не завершится первый

СообщениеДобавлено: 21 мар 2012, 19:20
admin
Вам поможет функция :animated - http://slyweb.ru/jquerydoc/animated.php

Re: Не обрабатывать первый клик пока не завершится первый

СообщениеДобавлено: 09 май 2012, 11:38
evgmike
Я долго парился с jquery пока не наткнулся на один сайт, написал в обратную связь ребята быстро помогли, ещё и в видео формате. Теперь всем советую..

http://веб-фишки.рф/

Re: Не обрабатывать первый клик пока не завершится первый

СообщениеДобавлено: 24 дек 2012, 00:41
thordrax