У меня проблема с анимацией jQuery. У меня есть форма, и функциональность находится на input
, щелкните прокрутку до начала следующего вопроса. Затем внизу есть кнопка сброса, однако после нажатия кнопки сброса скорость анимации удваивается. Я попытался добавить функцию .stop(true)
, но она не работает. Вот мой код:
let scrollHandler = (target) => {
$('html').stop(true).animate({scrollTop: target}, 500);
}
function next() {
inputs.on("click", "input", (e) => {
...
scrollHandler($(target).offset().top);
});
}
Сколько раз вызывается
next()
?каждый раз, когда на вопрос в форме дается ответ, он работает отлично, пока форма не будет сброшена.
Попробуйте
inputs.off("click").on("click", "input", (e) => { ... });
Я только что понял это - потому что, когда я нажимаю сброс, я устанавливаю
$('#results').addClass('display-none');
, есть идеи, почему это вызывает прерывание анимации?При сбросе формы вам необходимо убедиться, что все повторно инициализировано до исходного состояния. Это включает в себя удаление обработчиков событий, которые были динамически подключены во время предыдущих вопросов и ответов. Мое предложение
inputs.off("click").on("click", "input", (e) => { ... });
может быть только частью решения.