區分拖曳 drag 和點選 click 事件

2022-01-20 22:21:07 字數 673 閱讀 8048

假設頁面上有乙個a標籤:

<

a href

="">google

a>

現在需要對這個標籤進行拖放操作,會發現當拖曳完成後,該鏈結也同時被開啟了,這並不是期望的結果,因為我們僅僅想將這個標籤拖放到另乙個位置而已。

最初很自然地想到了用preventdefault來阻止預設行為,可實際操作後發現這種方案不可行。

由於拖曳需要監聽三個事件:mousedown、mousemove、mouseup,而點選事件click則包含了mousedown和mouseup,如果阻止了預設的click操作,那麼

拖曳也不能正常進行。解決這個問題的關鍵是區分滑鼠是點選還是拖曳,下面是解決方案,為精簡**,用到了jquery:

var a = $('a'),

flag = 0; //

標記是拖曳還是點選

a.bind(,

mousemove:

function

(e) ,

mouseup:

function

(e)

else

if(flag === 1) );

}//code...

}});

通過乙個flag變數來區分是點選還是拖曳操作,這樣拖曳和點選鏈結就不衝突了。

微信小程式區分點選,長按事件

touchstart 手指觸控 longtap 手指觸控後後,超過350ms離開 touchend 手指觸控動作結束 tap 手指觸控後離開 事件觸發順序 單擊touchstart touchend tap 長按touchstart longtap touchend tap 通過上 可以發現,單擊事...

初學HTML5 拖放(Drag 和 Drop)

internet explorer 9 firefox,opera,chrome,和 safari 支援拖動。注意 safari 5.1.2不支援拖動.id drag1 src images logo.png draggable true ondragstart drag event width 3...

前端 html5 拖放(Drag 和 Drop)

拖放 drag 和 drop 是 html5 標準的組成部分。首先看個例項 拖動 logo 到矩形框中 首先,為了使元素可拖動,把 draggable 屬性設定為 true 然後,規定當元素被拖動時,會發生什麼。在上面的例子中,ondragstart 屬性呼叫了乙個函式,drag event 它規定...