У меня есть кнопка <button class="foo">Foo</button>
с обработчиком событий, присоединенным к нему, что разворачивает или сворачивает блок, используя .slideToggle()
остановка анимации с использованием slideToggle
$('.foo').on('click', function() {
const fooBlock = $(this).next();
fooBlock.slideToggle(() => {
fooBlock.toggleClass('hidden');
});
Если пользователь нажимает на кнопку, когда анимация находится в переходном периоде, то щелчок в очереди. Как остановить анимацию, если пользователь нажимает кнопку во время выполнения анимации?
В качестве альтернативы, булево значение в переводе и проверка в обработчике кликов, если происходит переход или нет. Нет необходимости удалять/readd-обработчики, что только замедляет страницу по сравнению с оставлением обработчика и просто не выполняет его иногда. – Shilly