关于vue的使用

最近做项目遇到一个问题,使用vue在一个div上同时添加click和dblclick事件,dblclick事件会触发click事件,怎么样设置才能两个事件互不干扰呢?单击事件和双击事件的冲突如何解决?

阅读 3.2k
3 个回答

,可以利用 setTimeout() 方法来延时完成 click 事件的处理,在需要停止 click 的时候利用 clearTimeout() 方法停止这一事件的处理。这样,就可以比较容易的写出如下的 javascript 代码:
data(){

     return{
         timer:null
     }
 }
 methods{
     // 单击事件
     oneClick(){
         this.timer &&  clearTimeout(this.timer);
         this.timer = setTimeout(function(){
            需要做的事情
        },300);
     }
     // 双击事件
     twoClick(){
        this.timer &&  clearTimeout(this.timer);
         需要做的事情
     }
 }

这个需要自己写判断,主要就是让单击事件不立刻触发,比如延迟300ms,如果在这段时间内触发了双击事件,就阻止前面单击事件的触发。
更简洁一点的做法就是都在单击事件中处理,如果连续两次单击事件间隔在300ms内,就认为是双击事件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题