最近有个单击实现切换,双击实现编辑的功能,发现元素同时绑定click和dbclick时,执行有问题,双击会引发单击执行!
感觉功能还挺常用的,在此记录一下,使用单击配合定时器使用实现
<div @click="singleClick">绑定事件元素</div>
//click单击事件实现单击双击效果
//定义鼠标点击间隔时间
const clickThreshild = 300
//定时器
let timer
//上次点击时间
let lastClickTime = 0
const singleClick=()=>{
const currentTime = new Date().getTime()
//判断是否连续点击且时间间隔小于clickThreshild
if(currentTime - lastClickTime < clickThreshild){
timer&&clearTimeout(timer)
//以下执行双击事件逻辑
lastClickTime = 0
console.log('执行双击事件')
}else{
lastClickTime = currentTime
timer = setTimeout(()=>{
//以下执行单击事件逻辑
console.log('执行单击事件')
},clickThreshild)
}
}