思路
- 设置一个全局变量clock=0;
- 每次调用这个方法把clock++,然后开启一个setTimeout为500毫秒,到时间后把clock清零;
然后在这之外判断,if(clock==2){执行相应操作};
具体代码:
btn.onclick = function (e) {
e.preventDefault();
cloc++;
setTimeout(() => {
cloc = 0;
}, 500)
if (cloc == 2) {
console.log("你双击了");
}
}
封装成高阶函数
function doubleClick(handle, await = 1000, n = 2) {
let count = 0;
let timer = null;
return function () {
if (!timer) {
timer = setTimeout(() => {
count = 0;
timer = null;
}, await);
}
count++;
if (count === n) {
handle(arguments);
count = 0;
clearTimeout(timer);
timer = null;
}
};
}