假設頁面上有乙個a標籤:
<a href
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 它規定...