Пропустить отложенное событие в javascript - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь пропустить событие задержки в JavaScript. Скажи (Если я четыре раза подряд нажимаю на колесо, первое срабатывает плохо, за ним следуют второе, третье и четвертое. В моем сценарии, если первое событие сработало, а второе / третье / четвертое события задерживаются или замедляются, я хочу чтобы говорить о втором и третьем событии, которое должно быть запущено, и должно напрямую запустить последнее событие (скажем, четвертое событие))

Возможно ли это с помощью JS / Jquery! И может кто-нибудь предложить мне какой-нибудь образец для этого, если это возможно!

Извините, если у меня нет особого смысла, я новичок здесь.

1 Ответ

1 голос
/ 07 апреля 2020

Звучит так, как будто вы описываете функцию debounce, которая запускает первое событие, но объединяет последующие события в течение определенного периода времени.

Этот плагин должен достичь того, что вы ищете: http://benalman.com/projects/jquery-throttle-debounce-plugin/

Этот вопрос и ответ также могут быть полезны.

Основываясь на примере автозаполнения на этой странице, http://benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/, должно быть запущено последнее (4-е в вашем примере) событие, но любые промежуточные события, которые происходят в быстрой последовательности, будут пропущены.

Вот пример Stackblitz , отбрасывающий событие mousewheel на каждые 0,1 с. Вам просто нужно включить плагин, а затем сделать:

$(document).ready(function () {
    $('body').bind('mousewheel', $.debounce(100, debounceEvent));
    function debounceEvent(event) {
        // Process mouse wheel event here
        console.log(event);
    }
});

Если вы сделаете быструю прокрутку, то должно генерироваться только последнее событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...