Показать сообщение отдельно
  #1 (permalink)  
Старый 21.03.2012, 17:35
Интересующийся
Отправить личное сообщение для battrack Посмотреть профиль Найти все сообщения от battrack
 
Регистрация: 03.03.2009
Сообщений: 13

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

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