news 2026/3/23 18:14:29

jQuery EasyUI 拖放 - 创建学校课程表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery EasyUI 拖放 - 创建学校课程表

jQuery EasyUI 拖放 - 创建学校课程表

使用jQuery EasyUIdraggabledroppable插件,可以轻松实现一个交互式的学校课程表(Timetable)。左侧显示可选课程科目,用户可以将科目拖动到右侧的课程表单元格中安排课表。支持从左侧拖入(克隆添加)和在课程表内拖动调整位置。

这个示例模拟一个简单的排课系统:左侧是课程列表,右侧是按星期和节次划分的表格。

官方教程参考:https://www.jeasyui.com/tutorial/dd/dnd3.php
在线 Demo:https://www.jeasyui.com/tutorial/dd/dnd3_demo.html

步骤 1: 引入 EasyUI 资源
<linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/default/easyui.css"><linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/icon.css"><scripttype="text/javascript"src="https://code.jquery.com/jquery-1.12.4.min.js"></script><scripttype="text/javascript"src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
步骤 2: 创建 HTML 结构

左侧课程区(多个可拖动 div),右侧课程表(table 的 td 为放置区)。

<divstyle="margin:20px 0;"></div><divclass="easyui-panel"style="width:800px;padding:10px;"><tablestyle="width:100%"><tr><tdvalign="top"><h3>可选课程</h3><divclass="item">语文<br>Teacher: Mr.Wang</div><divclass="item">数学<br>Teacher: Mr.Xu</div><divclass="item">英语<br>Teacher: Miss.Liu</div><divclass="item">物理<br>Teacher: Mr.Zhao</div><divclass="item">化学<br>Teacher: Mr.Chen</div><divclass="item">体育<br>Teacher: Mr.Li</div></td><tdvalign="top"style="padding-left:50px;"><h3>课程表</h3><tableclass="timetable"><tr><th></th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th></tr><tr><td>第1节</td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td></tr><tr><td>第2节</td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td></tr><tr><td>第3节</td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td></tr><tr><td>第4节</td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td></tr><tr><td>第5节</td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td><tdclass="drop"></td></tr></table></td></tr></table></div><style>.item{width:120px;height:60px;margin:10px;padding:10px;text-align:center;background:#fafafa;border:1px solid #ccc;cursor:move;}.timetable th, .timetable td{border:1px solid #ccc;padding:10px;text-align:center;width:100px;height:80px;vertical-align:top;}.timetable .drop{background:#fff;}.timetable .over{background:#ff0;}</style>
步骤 3: JavaScript 实现拖放逻辑

使课程可拖动(clone 代理),课程表单元格可放置;从左侧拖入克隆添加,从表格内拖动则移动。

<scripttype="text/javascript">$(function(){// 左侧课程可拖动(克隆)$('.item').draggable({revert:true,proxy:'clone',onStartDrag:function(){$(this).draggable('options').cursor='not-allowed';},onStopDrag:function(){$(this).draggable('options').cursor='move';}});// 课程表单元格可放置$('.timetable td.drop').droppable({onDragEnter:function(e,source){$(this).addClass('over');},onDragLeave:function(e,source){$(this).removeClass('over');},onDrop:function(e,source){$(this).removeClass('over');if($(source).hasClass('assigned')){// 从表格内拖动:移动$(this).append(source);}else{// 从左侧拖入:克隆添加varclone=$(source).clone().addClass('assigned');$(this).empty().append(clone);clone.draggable({revert:true// 允许在表格内继续拖动调整});}}});});</script>
关键说明
  • 从左侧拖入:使用proxy:'clone',放置时克隆课程并添加assigned类,标记已安排。
  • 在表格内调整:已安排的课程(.assigned)拖动时直接移动元素。
  • 视觉反馈:拖入单元格时高亮(.over类)。
  • revert: true:无效放置时回弹。
  • 优势:直观排课,支持调整位置,可扩展清除/保存功能。
扩展建议
  • 添加“清除”按钮:在单元格右键或双击清除课程。
  • 支持保存:拖放后收集所有安排的课程,AJAX 提交到后端。
  • 防止重复/冲突:onDrop 时检查单元格是否已有课程。
  • 更多节次/星期:动态生成表格。

更多示例:

  • 官方学校课程表示例:https://www.jeasyui.com/tutorial/dd/dnd3.php
  • Demo 下载:可在官方教程页查找 ZIP。

如果需要添加保存功能、冲突检测、完整源码,或更多课程数据,请提供更多细节!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/19 22:46:50

jQuery EasyUI 菜单与按钮 - 创建链接按钮(Link Button)

jQuery EasyUI 菜单与按钮 - 创建链接按钮&#xff08;Link Button&#xff09; jQuery EasyUI 的 linkbutton 组件是一个美化的超链接按钮&#xff08;基于 <a> 标签&#xff09;&#xff0c;支持图标、文本、不同大小、纯图标模式、启用/禁用状态、切换&#xff08;to…

作者头像 李华
网站建设 2026/3/23 5:38:17

23、解锁量子优势:供应链优化的实用应用与案例研究

解锁量子优势:供应链优化的实用应用与案例研究 1. 供应链优化中的量子计算简介 随着全球供应链的复杂性不断增加,传统计算方法在处理海量数据和众多优化挑战时显得力不从心。量子计算作为一项革命性技术,有望突破经典计算的限制,为供应链优化开辟新的领域。 量子计算利用…

作者头像 李华
网站建设 2026/3/14 5:30:08

2025 CTF 解题思路终极指南:从入门到实战的全题型干货总结

前言&#xff1a;CTF 解题的核心逻辑&#xff08;2025 最新趋势&#xff09; CTF 竞赛已进入 “精细化对抗” 时代&#xff0c;2025 年赛事呈现三大特征&#xff1a;跨模块融合&#xff08;如 Web 密码学&#xff09;、实战化场景&#xff08;云环境 / API 调用&#xff09;、…

作者头像 李华
网站建设 2026/3/20 13:14:04

PC端商城纷纷开通网银支付功能

如今&#xff0c;越来越多的PC端商城纷纷开通网银支付功能&#xff0c;核心原因在于该支付方式能够为用户带来更优质的支付体验。商家只需通过报备白名单API接口&#xff0c;即可实现一次性对接多家银行的服务。当用户在商城完成下单流程并进入支付环节时&#xff0c;系统会跳转…

作者头像 李华
网站建设 2026/3/19 7:22:44

深度剖析GEO优化技术:AI搜索浪潮下的推广创新策略

2025年&#xff0c;用户获取信息的方式正在改变。当企业还在为搜索广告的高成本和传统SEO的漫长周期发愁时&#xff0c;AI搜索平台已悄然成为新的流量入口。GEO优化&#xff08;生成式引擎优化&#xff09;应运而生&#xff0c;它让企业信息在AI回答中被推荐&#xff0c;而不是…

作者头像 李华