У меня есть обработчик события перетаскивания, который запускает (1) анимацию и (2) настраивает счетчик. Когда я перетаскиваю цель, несколько обработчиков будут запускаться несколько раз, а счетчик ошибочен. Событие касания основано на Hammer.js.Избегайте дублирования обработки событий с анимацией внешней библиотеки
$(hammer).on('swipeleft',function(){
doAnimation();
counter++;
}
Обратите внимание, что обработчик может быть вызван для нескольких раз и потому, что несколько событий в непрерывных (длинных) сопротивлениях, и пользователя быстро волоча за несколько раз во время анимации (так что я не могу полагаться на «выпуск» событии ?).
Кроме того, doAnimation() завернута в отдельную библиотеку анимации, поэтому я не хочу испортить некоторые коды в этой библиотеке (если у меня нет других вариантов). Крайний случай, я использую функцию -webkit-перехода реализовать анимацию,
$(hammer).on('swipeleft',function(){
$('.content').css('width',0);//-webkit-transition: all 0.5s ease;
counter++;
}
Как я могу справиться с такой ситуацией?
Ну, я могу использовать вводящие в заблуждение слова «перетаскивания». Я имею в виду «салфетки», и немедленная установка флага не очень хороша. Идеальный случай - установить флаг в doAnimation(), когда анимация завершена. – mrmoment