我的问题是,当我执行“双击”时,会触发用于这两个事件的方法

例如,当触发特定事件时,我需要执行特定功能。

<a (click)="method1()" (dblclick)="method2()">

当我执行“双击”时,method1()method2()都被触发。

最佳答案

您可以使用超时和 bool(boolean) 标志来解决此问题。
考虑以下:

DOM需要几毫秒的时间才能识别出双击。

但是,请务必确保它可以识别双击,但也可以识别第一次单击。

因此逻辑是这样的。

isSingleClick: Boolean = true;

method1CallForClick(){
   this.isSingleClick = true;
        settimeout(()=>{
            if(this.isSingleClick){
                 doTheStuffHere();
            }
         },250)
}
method2CallForDblClick(){
         this.isSingleClick = false;
         doTheStuffDblClickHere();
}

在元素的click事件中调用方法1,在元素的click事件中调用方法2。

关于angular - 如何使用typescript:Angular 2或4在同一个html DOM元素上处理 “single click”和 “double click”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48295288/

10-10 00:05