长按与点击事件发生冲突

时间:2018-07-19 11:30:45

标签: css typescript ionic-framework ionic3

我有使用ngFor循环生成的消息列表,每个消息都长按一次甚至使用该模块,现在当用户长按div时,它将运行一个事件,该事件传递div-id并变为一个如果ID匹配,则在div上启用高亮显示,基本上每个div都有ngClass绑定,将其ID与存储的ID匹配,当用户长按时,我将按下的div的ID移至变量,因此该div的测试变为真,

问题在于当 -用户在div之外点击 -选中div后再次点击

在编程中,我只需要在将id移至null的地方设置变量,但是在哪里编写代码来实现这一点就很麻烦

这是div列表

<div class="message" *ngFor="let l of list" [ngClass]="{'selected':isMessageSelected(l)}" [class.left]="l.sender != me"
      [class.right]="l.sender == me" ion-long-press [interval]="400" (onPressStart)="pressed()" (onPressing)="active($event,l)"
      (onPressEnd)="released()">

如果长时间按住div,则每次运行三个事件的代码

pressed() {
    this.logger.info('Pressed');
    this.logger.info('@Pressed', this.l);
  }

  active(event: Event, l) {
    this.editModeActive = true;
    this.msg = l;
    this.selectedMessage = l.uid;
  }

  released() {
    this.logger.info('Released');
  }

在长按触发时,将click事件放入div会立即运行它,因此检查editModeActive也无济于事。

注意:长按div时,在整个主体上放置click事件也会触发该事件,

有人能想到实现这一目标的方法吗?

链接到离子,长按npm:https://www.npmjs.com/package/ionic-long-press

0 个答案:

没有答案