angular 单击和双击事件分开

需求:

表格单击选中,双击显示修改,所以需要在行数据上面添加单击与双击。这时候就要区分开了。

环境:

angualr、ng-zerro

实现:

双击的时候肯定会先触发单击,所以我们进行单击拦截。这里拦截使用定时器拦截,如果触发双击则进行定时器清除。不然就实现单击逻辑。

创建单击及双击事件,如下所示:

<tr *ngFor="let data of rowSelectionTable.data" (click)="clickItem(data.columnId)" (dblclick)="dbClickItem(data)" >

首先声明标识符,用于判断单击是否正在执行,这里之前没有添加标识符,导致触发两次单击,定时任务被重新赋值,所以清除了一个定时任务,导致另一个正常执行依然触发单击。

可以理解为 单击为“单例”模式的单击事件。

isSingle=false;
timeout;


clickItem(id){
  var that=this;
  let _id = id;
  if(!this.isSingle){
    this.isSingle=true;
    this.timeout = setTimeout(function () {
      console.log('你单击');
      that.isSingle = false;
      that.mapOfCheckedId[_id]=!that.mapOfCheckedId[_id];
    },250)
  }
  
  
}
dbClickItem(e){
  console.log('你双击');
  this.isSingle = false;
  console.log(this.timeout)
  clearTimeout(this.timeout);
  console.log(e);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值