jquery 拖放
jQuery 拖放实现方法
使用 jQuery 实现拖放功能可以通过结合 HTML5 的拖放 API 或第三方插件如 jQuery UI 来完成。以下是两种常见方法的详细说明:
使用 jQuery UI 实现拖放
jQuery UI 提供了 draggable 和 droppable 方法,可以快速实现元素的拖放交互。

// 引入 jQuery 和 jQuery UI 库后
$(function() {
$("#draggable").draggable();
$("#droppable").droppable({
drop: function(event, ui) {
$(this).addClass("ui-state-highlight").html("Dropped!");
}
});
});
对应的 HTML 结构:

<div id="draggable" class="ui-widget-content">
<p>Drag me</p>
</div>
<div id="droppable" class="ui-widget-header">
<p>Drop here</p>
</div>
使用原生 HTML5 拖放 API
虽然不使用 jQuery UI,但 jQuery 可以简化事件处理:
$(function() {
$(".drag-item").on("dragstart", function(e) {
e.originalEvent.dataTransfer.setData("text/plain", $(this).attr("id"));
});
$(".drop-zone").on("dragover", function(e) {
e.preventDefault();
$(this).addClass("drag-over");
})
.on("dragleave", function() {
$(this).removeClass("drag-over");
})
.on("drop", function(e) {
e.preventDefault();
$(this).removeClass("drag-over");
var id = e.originalEvent.dataTransfer.getData("text/plain");
$("#" + id).appendTo(this);
});
});
对应的 CSS 样式:
.drag-item {
width: 100px;
height: 100px;
background: #ccc;
cursor: move;
}
.drop-zone {
width: 200px;
height: 200px;
border: 2px dashed #999;
}
.drag-over {
border-color: #f00;
}
拖放事件说明
dragstart: 开始拖动元素时触发dragover: 当拖动元素在放置目标上方时持续触发dragleave: 拖动元素离开放置目标时触发drop: 拖动元素被放置在目标区域时触发
注意事项
- 使用 jQuery UI 时需要额外引入库文件
- HTML5 原生拖放 API 在现代浏览器中支持良好
- 移动端设备需要特殊处理触摸事件
- 复杂的拖放场景可能需要保存更多数据或状态
以上方法可以根据具体需求选择使用,jQuery UI 提供了更多高级功能如排序、约束等,而原生 API 则更加轻量。






