猫头鹰旋转木马防止点击拖动

时间:2021-01-02 15:20:20

标签: javascript click angular9 drag owl-carousel

我在 Angular 中使用 ngx-owl-carousel-o 库。每个轮播项目都被创建为一个带有(点击)事件的 div。我遇到的问题是,当拖动轮播时,它总是会不合需要地触发点击事件,即点击应该只在不拖动时触发。

<owl-carousel-o [options]="customOptions" (dragging)="on_carouselDrag($event.dragging)">
    <ng-container *ngFor="let item of items">
        <ng-template carouselSlide>
            <div (click)="on_itemSelected(item)">
                <!-- ... -->
            </div>
        </ng-template>
    </ng-container>
</owl-carousel-o>

我制定了一个似乎有效的解决方案,但我不确定它是否适合使用 setTimeout。我基本上只是用它来延迟 on_carouselDrag 的结束,以确保 on_vendorSelected 首先触发。

on_itemSelected(item: string): void {
  if(!this.isDragging){
    // ...
  }
}

on_carouselDrag(dragging: boolean){
  setTimeout(() => {
    this.isDragging = dragging;
  }, 10 )
}

如果可以改进这种方法,我们将不胜感激。

0 个答案:

没有答案