Demigodd
@Demigodd

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

Заметил что если ожидается событие .click(), по определенному HTML элементу, то если многократно нажать правый клик то он сбивает Jquery событие, и выполняется пользовательский клик а не .click() функция.
Как решить эту проблему ?
  • Вопрос задан
  • 161 просмотр
Решения вопроса 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));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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