ตรวจสอบให้แน่ใจว่าคุณตั้งค่าแอตทริบิวต์ที่ลากได้ขององค์ประกอบเป็นเท็จเพื่อให้คุณไม่มีผลข้างเคียงเมื่อฟังเหตุการณ์การวางเมาส์:
<div class="thing" draggable="false">text</div>
จากนั้นคุณสามารถใช้ jQuery:
$(function() {
var pressed, pressX, pressY,
dragged,
offset = 3; // helps detect when the user really meant to drag
$(document)
.on('mousedown', '.thing', function(e) {
pressX = e.pageX;
pressY = e.pageY;
pressed = true;
})
.on('mousemove', '.thing', function(e) {
if (!pressed) return;
dragged = Math.abs(e.pageX - pressX) > offset ||
Math.abs(e.pageY - pressY) > offset;
})
.on('mouseup', function() {
dragged && console.log('Thing dragged');
pressed = dragged = false;
});
});