+ @mousedown="onDragStart">
{{ title }}
@@ -135,6 +132,11 @@ const onDragStart = (e) => {
});
// 防止文本选择
e.preventDefault();
+
+ // 将鼠标移动和释放事件绑定到document,确保拖拽的连续性
+ document.addEventListener('mousemove', onDragMove);
+ document.addEventListener('mouseup', onDragEnd);
+ document.addEventListener('mouseleave', onDragEnd);
}
};
@@ -153,6 +155,11 @@ const onDragEnd = () => {
if (isDragging) {
isDragging = false;
emit('dragEnd');
+
+ // 拖拽结束后移除事件监听器
+ document.removeEventListener('mousemove', onDragMove);
+ document.removeEventListener('mouseup', onDragEnd);
+ document.removeEventListener('mouseleave', onDragEnd);
}
};