Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/32: Рейтинг темы: голосов - 32, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 34

Как при быстром многократном клике по кнопке обрабатывать только первый клик

21.03.2012, 17:34. Показов 6562. Ответов 5
Метки нет (Все метки)

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

Как быть? Можно ли из многочисленных кликов по кнопке обрабатывать только первый клик? А остальные клики не выстраивать в очередь. Как только завершится код внтри обработчика клика, то по кнопке снова можно кликать???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2012, 17:34
Ответы с готовыми решениями:

Ошибка PHP при быстром клике.
В онлайн магазине можно купить 3 вещи за день. Но с помощью кликера, например Tasker, удается обойти это условие. Скрипт примерно...

Функция выполняется при клике только на первый элемент
Нужно, чтобы при клике на элемент с id set_api выполнялась функция. $(document).ready(function(){ ...

Как сделать что бы при клике по кнопке в Image появлялась картинка
Как сделать что бы при клике по кнопке, в Image появлялась картинка, а при клике по др соотв. др картинка? так стоп! разобрался !...

5
7 / 7 / 1
Регистрация: 19.03.2012
Сообщений: 30
21.03.2012, 23:25
попробуйте после клика по элементу, отвязать обработчик клика на нем .off(), а по выполнении перемещения обратно повесить .on()
0
 Аватар для Daredevi1
311 / 303 / 78
Регистрация: 09.05.2009
Сообщений: 723
22.03.2012, 10:29
HTML5
1
2
<div></div>
<button>move</button>
CSS
1
2
3
4
5
6
7
8
div {
    position: absolute;
    width: 50px;
    height: 50px;
    top: 50px;
    left: 0;
    background: red;
}
JavaScript
1
2
3
4
5
6
var flag = false;
$('button').click(function(){
    if (flag) return false;
    flag = true;
    $('div').animate({left: '+=100px'}, function(){flag = false;});                                                 
});
Вот живой пример:
http://jsfiddle.net/c2Gkg/2/
1
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 34
22.03.2012, 10:46  [ТС]
Daredevi1, огромное спасибо!
Этот прием 100%-о помог!! Все работает!
0
 Аватар для Daredevi1
311 / 303 / 78
Регистрация: 09.05.2009
Сообщений: 723
22.03.2012, 11:33
Для спасибо, есть кнопочка
0
22 / 1 / 1
Регистрация: 22.03.2012
Сообщений: 10
22.03.2012, 14:46
Помоему намного легче и правильнее просто disable у кнопки выставлять в True.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2012, 14:46
Помогаю со студенческими работами здесь

Клик по кнопке только мышкой, запрет нажатия Enter и Space
Добрый день форумчане! C# я недавно изучаю, пишу своё первое приложение. Опишу: Есть форма в ней кнопка button1 при нажатии на...

При клике на ссылку в Хроме код срабатывает только при повторном клике
При клике на ссылку в Хроме код срабатывает только при повторном клике в мазили работает корректно с первого раза как исправить код ниже...

Как сделать, чтобы при повторном клике по кнопке обрывалось соединение и выключался Kaspersky?
Я сделал свою собственную обою для рабочего стола: хорошая картинка и кнопка, ну, как в Хоттабыче - все смотрели этот фильм. Потом зашел в...

Как сделать что б при клике по объекту выделение снималось с другого селектора по кторому был клик?
Здравствуйте друзья, имеется сайт на котором была организована система тестирования. Я настроил выделение варианта ответа при помощи...

Сделать, чтобы при клике на кнопке, блок #cont исчез, а при повторном клике блок #cont появился
Как сделать, чтобы при клике на кнопке, блок #cont исчез, а при повторном клике блок #cont появился? Вроде это уже устаревший способ и не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru