我有一个工作正常的Hammerjs拖动侦听器,可以像我期望的那样捕获拖动。但是当放开时,紧随Dragend之后的是triggered,它也会触发click事件。因此,如果您单击以拖动(移动)目标,而光标恰好位于链接上,则当您放开(拖放)时,它会触发对链接的单击,而这并不是我想要的。

这是我的代码:

$('.draggable').hammer({
    drag_min_distance: 0,
    drag_max_touches: 2,
    drag_lock_to_axis: true,
    drag_lock_min_distance: 30
}).on('drag', handleMiddleEvent)
  .on('dragstart', handleStartEvent)
  .on('dragend', handleEndEvent);

如果我在所有三个处理程序上console.log event,然后在所有链接上console.log单击events,我的控制台中将出现以下内容:
dragstart
dragmiddle
dragmiddle
dragmiddle
dragmiddle
dragend
click

我想避免最后点击。我尝试将event.stopPropagation()添加到所有处理方法中,但无济于事。

最佳答案

尝试使用Hammer.js的tap事件而不是链接上的click事件。

07-23 03:31