Animate не очищает очередь и продолжает удваивать

avatar
Jamie
8 апреля 2018 в 00:12
34
0
0

У меня проблема с анимацией 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);
  });
}
Источник
Roamer-1888
8 апреля 2018 в 00:17
0

Сколько раз вызывается next()?

Jamie
8 апреля 2018 в 00:30
0

каждый раз, когда на вопрос в форме дается ответ, он работает отлично, пока форма не будет сброшена.

Roamer-1888
8 апреля 2018 в 00:33
0

Попробуйте inputs.off("click").on("click", "input", (e) => { ... });

Jamie
8 апреля 2018 в 00:34
0

Я только что понял это - потому что, когда я нажимаю сброс, я устанавливаю $('#results').addClass('display-none');, есть идеи, почему это вызывает прерывание анимации?

Roamer-1888
8 апреля 2018 в 00:40
0

При сбросе формы вам необходимо убедиться, что все повторно инициализировано до исходного состояния. Это включает в себя удаление обработчиков событий, которые были динамически подключены во время предыдущих вопросов и ответов. Мое предложение inputs.off("click").on("click", "input", (e) => { ... }); может быть только частью решения.

Ответы (0)