Не работает функция двойного клика по кнопке
У меня проблема подключить функцию двойного клика:
$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)