Vue点击事件单击和双击

文章描述:

Vue单击和双击事件处理

vue自带的双击事件 @dblclick=”dblclick”

 

 

延时判断单击或者双击

var timer=null;
export default{
  data(){
    return{
      dbClick:false
    }
  },
  methods:{
    click(){
      clearTimeout(timer);               // 这里防抖节流  存在之前的定时器 先清除掉

      this.dbClick=!this.dbClick;        //  第一次点击 先取反

      timer=setTimeout(()=>{             // 使用异步函数的操作
          if(this.dbClick==true){        // 如果在300毫秒内用户没有点击 那么就是 true
            console.log('用户点击')
          }else{                         //  否则用户再一次点击了 将其转换成初始的false状态 就是双击了
            console.log('用户双击')
          }
          this.dbClick=false;            // 让其重新归位   保持原来的样式 如果不归位 变成 true的话  后面会出问题
        },300)

      },
  }
}

 

 

<template>
	<!--添加单击事件和双击事件-->
    <div  @click="handleClick" @dblclick="dblClick">点击</div>
</template>

<script>
var time = null;  //  在这里定义time 为null
export default {
  data() {
      return {

      }
  },
  methods:{
      // 单击事件
      handleClick() {
        clearTimeout(time);  //首先清除计时器
        time = setTimeout(() => {
          //这里执行你自己的方法或者业务逻辑
          console.log('单击')
        },300)
      },
      // 双击事件
      dblClick(){
        clearTimeout(time);  //清除
        //这里可以添加你自己双击事件的方法或者逻辑
        console.log('双击')
      }
	}
}
</script>

 

发布时间:2023/05/24

发表评论