Не работает функция двойного клика по кнопке

У меня проблема подключить функцию двойного клика:

$btn.addEventListener('click', function () {
  console.log('kick');
  changeHP(random(10), character);
  changeHP(random(10), enemy);
});

const doubleClickThreshold = 250;
console.log(doubleClickThreshold);
const clicker = document.getElementById('click');
const output = document.getElementById('output');

function createClicker(clickFn, dblClickFn) {
  let timer;
  return function (event) {
    const context = this;

    if (timer) {
      clearTimeout(timer);
      dblClickFn.call(context, event);
      timer = null;
      return;
    }

    timer = setTimeout(function (ctx) {
      timer = null;
      clickFn.call(ctx, event);
    }, doubleClickThreshold, context)
  }
}

function onClick(event) {
  output.innerHTML = 'click';
}

function onDoubleClick(event) {
  output.innerHTML = 'double click';
}      

const clickHandler = createClicker(onClick, onDoubleClick);
clicker.onclick = clickHandler;

Ответы (1 шт):

Автор решения: agutin

Проблема в том, что timer = null

timer = setTimeout(function (ctx) {
  timer = null;
  clickFn.call(ctx, event);
}, doubleClickThreshold, context)
→ Ссылка