Задержка начала перетаскивания не работает для мобильных устройств - PullRequest
1 голос
/ 26 сентября 2019

Я добавил функцию тайм-аута, чтобы изменить значение dragEnabled на моем div.Идея состоит в том, чтобы начать перетаскивание после того, как пользователь удерживает мышь или держит на мобильном телефоне в течение 0,3 с.На ПК все работает нормально, но на мобильных устройствах по какой-то причине перетаскивание не начинается.

Можно ли как-то обойти это?

<div #jobElement dnd-draggable (onDragStart)="onDragStart(jobs, $event)" (onDragEnd)="onDragEnd(jobs, $event)" (drag)="onDrag($event)"
         (pointerdown)="highlightJob(jobElement, jobs, $event)" (pointerup)="unhighlightJob(jobs)" (pointermove)="clearHighlightTimer()"
         [dragEnabled]="jobs.jobs.length < 2 && !shiftService.shiftLocked && jobs.draggable"
         [dragData]="['job', jobs, this.shift.unspecifiedJobs, this.shift.notRequiredJobs, this.shift.cancelledJobs]">
      </div>

Логика для изменения dragEnabled:

highlightJob(jobElement, jobs, event) {
    if (jobs.jobs.length < 2) {
      this.highlightTimer = setTimeout(() => {
        jobs.draggable = true;
      }, this.dragDelay);
    }
  }

  unhighlightJob(jobs) {
    this.clearHighlightTimer();
    jobs.draggable = false;
  }

  clearHighlightTimer() {
    if (this.highlightTimer) {
      clearTimeout(this.highlightTimer);
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...