Остановите несколько анимаций при одновременном нажатии кнопки несколько раз, пока анимация не будет завершена с помощью следующего кода.
объявить один глобальной переменнойОстановите несколько анимаций до завершения другой анимации
var animateFinish = true;
И вот я начинаю с клик действия
$('#button').on('click', function(e){
if(animateFinish){
animateFinish = false;
$('.selector').animate({'margin-left':'100px'},"fast",'linear',function(){
animateFinish = true;
}
}
}
1. Глобально объявить переменную как True (animateFinish).
2. Первый раз он удовлетворяет условиям.
3. Сразу же оно изменяется как ложное.
4. После завершения анимации он возвращается.
5. Теперь, если вы проверите его, пока анимация не завершится, событие не будет анимировано.
Извините за мой английский.
Приведенный выше код работает отлично для моей логики –
я на самом деле думаю, что вы потенциально должны попытаться 'остановки()' любой продолжая анимацию, а не задерживая других. 'stop()' избавится от текущей анимации и начнется оттуда. Если вы хотите связать анимацию, вам не нужен animateFinish, так как у вас есть обратный вызов. Вы можете создать qeue функций и посмотреть, есть ли еще один оставшийся для выполнения после каждого обратного вызова animate. Проверьте 'queue()': http://api.jquery.com/queue/ – somethinghere
queue() не работает согласно моим требованиям –