双击/双击Angular2&离子的

时间:2017-03-06 10:47:21

标签: angular ionic2 directive angular2-directives double-click

我正在寻找许多论坛和问题,但似乎没有人问如何双击ou双击Angular / ionic 2?

在离子v1中,它可以on-double-tap(参见http://ionicframework.com/docs/api/directive/onDoubleTap/

是否有人可能有一个提示或任何代码来捕捉离子2 /角度2上的双击事件?

也许通过HammerJS?

非常感谢! 路易斯:)

4 个答案:

答案 0 :(得分:16)

所以在1-2小时之后很明显,您不需要使用Ionic捕获双击事件,但使用纯 JavaScript dblclick()

所以在Angular 2中它会是:(dblclick)="myFunction()"而且就是它!

您可以在此处找到JavaScript的其他活动。

答案 1 :(得分:5)

html文件

<button (tap)="tapEvent()">Tap Me!</button>

ts文件

let count : number = 0;
tapEvent(){
this.count++;
setTimeout(() => {
  if (this.count == 1) {
    this.count = 0;
    alert('Single Tap');
  }if(this.count > 1){
    this.count = 0;
    alert('Double Tap');
  }
}, 250);

}

答案 2 :(得分:1)

要捕获双击事件,可以使用以下内容:

(dblclick)="clickFunction()"

如果我们想在双击时触发点击和其他功能的功能,我们可以使用以下内容:

<button (click)="simpleClickFunction()" (dblclick)="doubleClickFunction()">click me!</button>

但是,当simpleClickFunction被触发时,也会调用doubleClickFunction函数。为防止这种情况发生,setTimeout可以提供以下帮助:

html template

<button (click)="simpleClickFunction()" (dblclick)="doubleClickFunction()">click me!</button>

Component

simpleClickFunction(): void{
    this.timer = 0;
    this.preventSimpleClick = false;
    let delay = 200;

    this.timer = setTimeout(() => {
      if(!this.preventSimpleClick){
        //whatever you want with simple click go here
        console.log("simple click");
      }
    }, delay);

  }

  doubleClickFunction(): void{
    this.preventSimpleClick = true;
    clearTimeout(this.timer);
    //whatever you want with double click go here
    console.log("double click");
  }

答案 3 :(得分:0)

Ionic 2具有基本手势,可以从HTML访问。 应该适用于iOS和Android。 您可以找到documentation here

他们提供的源代码is here