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

Многократное нажатие левой кнопки мыши мешает выполнению событий .click()?

Заметил что если ожидается событие .click(), по определенному HTML элементу, то если многократно нажать правый клик то он сбивает Jquery событие, и выполняется пользовательский клик а не .click() функция.
Как решить эту проблему ?
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
BRAGA96
@BRAGA96
Вам нужен так называемый debounce.
function debounce(func, wait, immediate) {
  var timeout;
  return function() {
    var context = this;
    var args = arguments;
    var later = function() {
      timeout = null;
      if (!immediate) func.apply(context, args);
    };
    var callNow = immediate && !timeout;
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
    if (callNow) func.apply(context, args);
  };
};

$('button').on('click', debounce(function() {
  console.log(this);
}, 500));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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