jQuery EasyUI 拖放 -
基本的拖动和放置 在jQuery EasyUI中,可以实现HTML元素的基本拖动和放置。
<div id="dd1" class="dd-demo"></div> <div id="dd2" class="dd-demo"></div> <div id="dd3" class="dd-demo"></div>
.dd-demo{ width:40px; height:40px; background-color:pink; margin:20px; }
对于第一个<div>元素,我们通过默认值让其可以拖动。
$('#dd1').draggable();
对于第二个<div>元素,我们通过创建一个克隆(clone)了原来元素的代理(proxy)让其可以拖动:
$('#dd2').draggable({ proxy:'clone' });
对于第三个<div>元素,我们通过创建自定义代理(proxy)让其可以拖动:
$('#dd3').draggable({ proxy:function(source){ var p = $('<div class="proxy">proxy</div>'); p.appendTo('body'); return p; } });
revert:true(拖拽后会还原)
$('#d1').draggable({ revert:true, proxy:'clone' });
制作课表:
<!-- 显示学校科目 --> <div class="left" > <table border ="1"> <tr> <td><div class="item">English</div></td> </tr> <tr> <td><div class="item">Science</div></td> </tr> <tr> <td><div class="item">Math</div></td> </tr> <!-- other subjects --> </table> </div> <!-- 显示时间表 --> <div class="right"> <table border ="1"> <tr> <td class="blank"></td> <td class="title">Monday</td> <td class="title">Tuesday</td> <td class="title">Wednesday</td> <td class="title">Thursday</td> <td class="title">Friday</td> </tr> <tr> <td class="time">08:00</td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> </tr> <tr> <td class="time">09:00</td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> </tr> <tr> <td class="time">10:00</td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> <td class="drop"></td> </tr> <!-- other cells --> </table> </div>
//拖动在左侧的学校科目 $('.left .item').draggable({ revert:true, proxy:'clone' }); //放置学校科目在时间表单元格上 $('.right td.drop').droppable({ onDragEnter:function(){ $(this).addClass('over'); }, onDragLeave:function(){ $(this).removeClass('over'); }, onDrop:function(e,source){ $(this).removeClass('over'); if ($(source).hasClass('assigned')){ $(this).append(source); } else { var c = $(source).clone().addClass('assigned'); $(this).empty().append(c); c.draggable({ revert:true }); } } });
正如您所看到的上面的代码,当用户拖动在左侧的学校科目并放置到时间表单元格中时,onDrop回调函数将被调用。我们克隆从左侧拖动的源元素并把它附加到时间表单元格上。当把学校科目从时间表的某个单元格拖动到其他单元格,只需简单地移动它即可。