Задать вопрос

Как остановить выполнение события в js?

Есть два списка. При прокрутке левого нужно прокручивать правый и выполнять некоторые доп. действия. И наоборот: при прокрутке правого - синхронно прокручивать левый.
6182a99d69d7a619062083.png
Я устанавливаю события так:
$('#left, #right').on('scroll', function(e) {
    //... какие-то действия
    $(block_a).animate({scrollTop: scroll}, 10);
});

Подробный пример на jsfiddle

Проблема в том, что при вызове функции animate() происходит повторный вызов события scroll и скрипт зацикливается. Нужно как-то остановить выполнение события, чтобы оно выполнялось только раз.

stopPropagation() - не помогает. Есть какое-то решение?
  • Вопрос задан
  • 136 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@jsnk
Программист
на событие onscroll: если div не активный или не кликнутый устанавливаем scroll иначе ничего не делаем
Ответ написан
Drilled-prog
@Drilled-prog
Программирую на ['php', 'js']
Можешь навешивать и убирать события с элемента, либо чистить timeout вовремя. https://jsfiddle.net/d7y6wLkc/

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы