问题概述
Stackblitz - https://stackblitz.com/edit/angular-touch-playground
我正在尝试注册触摸事件,并希望能够触摸手指,拖动并抬起手指,从而使表格的每个 td
都被突出显示。这似乎被记录为一个 pan
事件。
当任何事件 click、touch 等
注册时,我使用了一个词典 pressed
,并使用 [class.bg-warning]="pressed[i]"
来突出显示这些内容。
有没有一种方法可以注册每个被触摸的 td
?
我尝试了像 click、touchstart
和 hammerjs
事件(在 app.module.ts
中通过 import 'hammerjs';
导入),但我必须单击每个 td
才能将其突出显示。
<td *ngFor="let dummy of ' '.repeat(48).split(''), let i = index"
(press)="logPress(i)"
(mouseenter)="logMouseIn(i)"
(touchmove)="logTouchmove(i)"
(click)="logClick(i)"
(touch)="logTouch(i)"
(touchend)="logTouchend(i)"
(hover)="logHover(i)"
(touchstart)="logTouchstart(i)"
(touchend)="logTouchend(i)"
(touchcancel)="logTouchcancel(i)"
[class.bg-warning]="pressed[i]" >
</td>
设置pressed
字典的示例:
logClick(i: number) {
this.event += '\n Click: '+ i.toString();
this.pressed[i]=1;
}