javascript - Angular 7 单击和双击事件

标签 javascript html angular html-table

我的表格行配置如下,

<tr  *ngFor="let v of mf.data | sortgrid: '-lastheartbeat'; index as i"
            [class.table-success]="venuesRunning[i]" [routerLink]="['/invoices', v.userid]">

上面的代码片段适用于单击该行。 我尝试在上面的代码上关联 double clink

<tr  *ngFor="let v of mf.data | sortgrid: '-lastheartbeat'; index as i"
            [class.table-success]="venuesRunning[i]" [routerLink]="['/invoices', v.userid]"
            (dblclick)="somefunction()">

但现在,也只有单一的 clang 有效。 删除 [routerlink] 后双击有效。

<tr  *ngFor="let v of mf.data | sortgrid: '-lastheartbeat'; index as i"
            [class.table-success]="venuesRunning[i]"
            (dblclick)="somefunction()">

我应该怎么做才能在 Angular 7 中同时实现单击和双击功能?

最佳答案

在这里您可以使用超时和 bool 标志来解决这个问题。

考虑以下几点:

DOM 需要几毫秒来识别双击。

但是它识别双击但也识别第一次点击。

所以逻辑是这样的。

你的.component.ts

export class App {

  preventSingleClick = false;
  timer: any;
  delay: Number;

  singleClick(event) {
    this.preventSingleClick = false;
     const delay = 200;
      this.timer = setTimeout(() => {
        if (!this.preventSingleClick) {
           //Navigate on single click
        }
      }, delay);
  }

    doubleClick (event) {
      this.preventSingleClick = true;
      clearTimeout(this.timer);
      //Navigate on double click
    }
 }

HTML

<tr  *ngFor="let v of mf.data | sortgrid: '-lastheartbeat'; index as i"
            [class.table-success]="venuesRunning[i]"  (click)="singleClick($event)" (dblclick)="doubleClick($event)" >

关于javascript - Angular 7 单击和双击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54661370/

相关文章:

javascript - 主干集合获取不会更新@collection.length

javascript - 无法在 Protractor 2.5.1 和 jasmine 1.3.1 上运行我的测试用例?

javascript - Protractor :在我的测试中正确使用 waitReady.js 文件

javascript - 在满足条件之前无法使用计时器调用嵌套函数?

javascript - AS3 导航ToURL();使用 jQuery 时,javascript 函数不会触发

javascript - 过滤特定的多个表达式 Angular js

javascript - "column select-all"使用复选框而不影响表 php 中的其他列

google-app-engine - Angular 2 和 Google App Engine,设置基本 href,重新加载子路由失败,服务器端路由

node.js - 无法在 centos 7 上安装 Angular cli

HTML/CSS : scrolling rectangle not working