Есть похожие вопросы о переполнении стека, но я не нашел правильного решения.
В случае двойного щелчка я не хочу, чтобы была активирована функция одного щелчка, и я бы хотелнравится архивировать это без jQuery и setTimeout.
Этого можно добиться с помощью setTimeout, но затем событие перемещения мыши блокируется на время задержки.
Код: https://codesandbox.io/s/vnrk3xk115
mouseDown = (e) => {
// Case 1
// In the case of double clicks, a single click will still trigger.
if (e.detail === 1) {
console.log('Single Click');
} else if (e.detail === 2) {
console.log('Double Click');
}
// Case 2
// In the case, I can't use mouse move for 250ms
let timeoutID = null;
if (!timeoutID) {
timeoutID = setTimeout(() => {
console.log('Single Click');
timeoutID = null;
}, 250);
} else {
timeoutID = clearTimeout(timeoutID);
console.log('Double Click');
}
}
mouseMove = () => {
// Mouse move is blocked for 250ms
}