当一个元素具有点击事件时,在这个元素上同时触发mousedown与mouseup会触发这个元素的点击事件,但是对于类似高亮、标注等功能时,可能mouseup与click会有相同的事件,不希望同时触发,只需要触发一次即可,怎么解决呢?
可以根据event的timeStamp来判断,mouseup和click的timeStamp相同,这个时候做一下判断处理即可
var timeStamp = 0;
document.addEventListener('mouseup', handle);
el.addEventListener('click', handle);
function handle (e) {
if (timeStamp === e.timeStamp) {
return;
}
// 业务逻辑...
timeStamp = e.timeStamp
}
本文介绍了一种使用timeStamp属性防止mouseup和click事件重复触发的方法,通过对比事件的时间戳,确保只响应一次,适用于高亮、标注等场景。
670

被折叠的 条评论
为什么被折叠?



