我有一個完美的工作hammerjs拖動監聽器,捕獲拖動就像我所期望的。但是,當你放手時,就在編輯器triggered
之後,它也會觸發一個click
事件。所以如果你點擊拖動(移動)目標,並且光標恰好在鏈接上,那麼當你放開(放下)時,它會觸發點擊鏈接,這是我不想要的。HammerJS觸發點擊後dragend
這裏是我的代碼:
$('.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()
添加到所有處理方法,但無濟於事。
我能夠通過添加一個「is_dragging」全局變量,在handleStartEvent中將其設置爲true,並在handleEndEvent中將100ms setTimeout設置爲false,然後檢查全局變量var在我的點擊處理程序上。但那真是太難看了。我真的希望有更好的東西。 –
您是否找到更好的解決方案? –