当前位置: 首页 > news >正文

jQuery UI 实例 - 排序(Sortable)

jQuery UI Sortable(排序)实例

jQuery UI 的Sortable交互允许用户通过鼠标拖拽对列表项进行排序,非常适合实现任务管理、菜单排序、看板(Kanban)等功能。它基于 Draggable 和 Droppable 构建,支持占位符、连接列表等高级特性。

推荐查看官方演示:https://jqueryui.com/sortable/

下面提供几个渐进实例,从基础到高级,代码使用最新 CDN,可直接复制到 HTML 文件测试。

1.基础排序示例

拖拽列表项改变顺序。

<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>jQuery UI Sortable 基础示例</title><linkrel="stylesheet"href="//code.jquery.com/ui/1.13.2/themes/smoothness/jquery-ui.css"><scriptsrc="//code.jquery.com/jquery-3.6.0.min.js"></script><scriptsrc="//code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script><style>#sortable{list-style-type:none;margin:0;padding:0;width:300px;}#sortable li{margin:5px;padding:10px;font-size:1.2em;background:#f0f0f0;cursor:move;}#sortable li.ui-sortable-helper{background:#ffeb3b;}</style></head><body><ulid="sortable"><liclass="ui-widget-content">项目 1</li><liclass="ui-widget-content">项目 2</li><liclass="ui-widget-content">项目 3</li><liclass="ui-widget-content">项目 4</li><liclass="ui-widget-content">项目 5</li></ul><script>$(function(){$("#sortable").sortable();});</script></body></html>
2.占位符与手柄(placeholder、handle)
  • placeholder:拖拽时显示占位框。
  • handle:仅指定手柄区域可拖拽排序。
<style>.placeholder{border:2px dashed #ccc;background:#fff;height:40px;}.handle{float:left;cursor:move;margin-right:10px;}</style><ulid="sortable2"><li><spanclass="handle ui-icon ui-icon-grip-dotted-vertical"></span>仅手柄排序(带占位符)</li><!-- 更多项 --></ul><script>$("#sortable2").sortable({placeholder:"placeholder",// 占位符类handle:".handle",// 仅手柄拖拽opacity:0.7// 拖拽时半透明});</script>
3.连接列表(connectWith)

多个列表间可互相拖拽排序,常用于看板(如待办/进行中/完成)。

<divstyle="display:flex;gap:20px;"><div><h3>待办</h3><ulid="todo"class="connectedSortable"><li>任务 A</li><li>任务 B</li></ul></div><div><h3>进行中</h3><ulid="doing"class="connectedSortable"></ul></div><div><h3>完成</h3><ulid="done"class="connectedSortable"><li>任务 C</li></ul></div></div><style>.connectedSortable{min-height:200px;width:200px;border:1px solid #ccc;padding:10px;}.connectedSortable li{margin:5px;padding:10px;background:#fff;}</style><script>$(".connectedSortable").sortable({connectWith:".connectedSortable",// 连接所有同类列表placeholder:"placeholder"});</script>
4.事件回调(update、receive)与获取顺序
  • update:列表内排序变化时触发。
  • receive:从其他列表接收项时触发。
  • 使用toArray()获取当前顺序。
<p>当前顺序:<spanid="order"></span></p><script>$("#sortable").sortable({update:function(event,ui){varorder=$(this).sortable("toArray");// 获取项ID数组(需给li加id)$("#order").text(order.join(", "));console.log("新顺序:",order);}});</script>

Sortable 支持网格排序(grid)、延迟启动(delay)、禁用某些项(cancel)等更多选项。常用于后台菜单管理或任务拖拽。如果你需要保存排序到服务器的 AJAX 示例、带延迟/网格的实例,或与 Selectable 结合的多选排序,请提供更多细节!

http://www.cnnetsun.cn/news/166139.html

相关文章:

  • 【Open-AutoGLM家务提醒安排】:揭秘智能家庭任务调度背后的AI黑科技
  • Open-AutoGLM食材购买避坑指南:90%人忽略的3类关键营养匹配原则
  • Open-AutoGLM任务中断恢复实战(断点续训技术大揭秘)
  • 【Open-AutoGLM饮食热量统计】:揭秘AI自动识别食物热量的黑科技与实测效果
  • Linly-Talker如何避免‘恐怖谷效应’?外观设计心理学研究
  • 基于Spring Boot的儿童福利院管理系统的设计与实现毕业设计
  • 基于Android的网上点餐APP
  • 如何用Open-AutoGLM实现秒级故障响应?一线架构师亲授压箱底方案
  • Open-AutoGLM日志系统揭秘,掌握这6个参数才算真正入门
  • jQuery UI 实例 - 放置(Droppable)
  • 探索三相两电平光伏逆变器DC - AC部分的Simulink仿真之旅
  • 【AI推理服务稳定性提升】:基于Open-AutoGLM的后台运行配置最佳实践
  • Open-AutoGLM网络配置避坑指南(一线专家亲授12年实战经验)
  • Open-AutoGLM报错代码怎么破:从日志到修复的7步闭环流程
  • 实时交互不是梦:Linly-Talker构建高响应数字人系统
  • 从沉默到透明:Open-AutoGLM运行日志开启全流程深度解析
  • Open-AutoGLM网络调优实战:5大核心参数配置你真的懂吗?
  • Open-AutoGLM端口占用问题深度解析(专家级排错手册限时公开)
  • JSP如何设计WebUploader分片上传的交互界面?
  • Linly-Talker在光伏电站运维中的故障排查指导
  • vue3+springboot基于uniapp的二手渔具回收商城系统 钓鱼交友的微信小程序开发(编号:803442152)
  • Linly-Talker在相声贯口练习中的气息控制
  • Linly-Talker在风电场巡检中的安全规程重申
  • 设备频繁掉线怎么办,一文搞懂Open-AutoGLM连接优化的8个关键步骤
  • 【稀缺资料】Open-AutoGLM接口调用延迟降低95%的完整技术路径
  • 版本冲突频发?Open-AutoGLM智能合并策略让协作开发效率翻倍
  • Linly-Talker在潜水探险中的装备使用说明
  • Linly-Talker在有声书朗读中的章节过渡处理
  • Linly-Talker在桥牌叫牌体系教学中的逻辑演绎
  • 网页前端如何通过Java实现分片上传的并行优化?