创建学校课程表


本教程将向您展示如何使用 jQuery EasyUI 创建一个学校课程表。 我们将创建两个表格:在左侧显示学校科目,在右侧显示时间表。 您可以拖动学校科目并放置到时间表单元格上。 学校科目是一个 <div class="item"> 元素,时间表单元格是一个 <td class="drop"> 元素。

显示学校科目

  1. <div class="left">
  2. <table>
  3. <tr>
  4. <td><div class="item">English</div></td>
  5. </tr>
  6. <tr>
  7. <td><div class="item">Science</div></td>
  8. </tr>
  9. <!-- other subjects -->
  10. </table>
  11. </div>

显示时间表

  1. <div class="right">
  2. <table>
  3. <tr>
  4. <td class="blank"></td>
  5. <td class="title">Monday</td>
  6. <td class="title">Tuesday</td>
  7. <td class="title">Wednesday</td>
  8. <td class="title">Thursday</td>
  9. <td class="title">Friday</td>
  10. </tr>
  11. <tr>
  12. <td class="time">08:00</td>
  13. <td class="drop"></td>
  14. <td class="drop"></td>
  15. <td class="drop"></td>
  16. <td class="drop"></td>
  17. <td class="drop"></td>
  18. </tr>
  19. <!-- other cells -->
  20. </table>
  21. </div>

拖动在左侧的学校科目

  1. $('.left .item').draggable({
  2. revert:true,
  3. proxy:'clone'
  4. });

放置学校科目在时间表单元格上

  1. $('.right td.drop').droppable({
  2. onDragEnter:function(){
  3. $(this).addClass('over');
  4. },
  5. onDragLeave:function(){
  6. $(this).removeClass('over');
  7. },
  8. onDrop:function(e,source){
  9. $(this).removeClass('over');
  10. if ($(source).hasClass('assigned')){
  11. $(this).append(source);
  12. } else {
  13. var c = $(source).clone().addClass('assigned');
  14. $(this).empty().append(c);
  15. c.draggable({
  16. revert:true
  17. });
  18. }
  19. }
  20. });

正如您所看到的上面的代码,当用户拖动在左侧的学校科目并放置到时间表单元格中时,onDrop 回调函数将被调用。我们克隆从左侧拖动的源元素并把它附加到时间表单元格上。 当把学校科目从时间表的某个单元格拖动到其他单元格,只需简单地移动它即可。


下载 jQuery EasyUI 实例


下载地址