Я добавил функцию тайм-аута, чтобы изменить значение 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);
}
}