Я хочу, чтобы двойной щелчок также не вызывал событие одиночного щелчка.
Простое решение, которое я нашел, состоит в том, чтобы отложить щелчок таймером и уничтожить таймер, если двойной щелчок сработал.
var pendingClick;
function myclick(){
clearTimeout(pendingClick);
pendingClick = setTimeout(function(){
console.log('click');
}, 500);
}
function mydblclick(){
clearTimeout(pendingClick);
console.log('double click');
}
<div onclick="myclick()" ondblclick="mydblclick()">Double Click Me!</div>
Но это решение основано на синхронизации, если двойной щелчок слишком медленный (> 500 мс), он также запускает один щелчок.
Есть стабильное решение для обработки как клика, так и двойного клика?