详情:拖动一般通过DIV来实现。这次实现的方法不限,最好是非商业版的授权插件,能够有源码进行改造学习。
(1)左边的布局有两个teams,teams中含有若干用户(最少一个),右边也有teams(同),左边team整体拖动到右边。加入进去,左边的team消失,右边的team增加。
(2)问题 是否涉及对数据库的操作,是否涉及到控件的注册,请大家给出建议!
谢谢!
------解决方案--------------------
在JQuery UI中有一个Draggable和Droppable的方法可以实现这个效果,假如你要记住它的位置,就要涉及到数据的操作,否则就不用。你可以上官网看它的API。
http://jqueryui.com/
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
这次给你完整代码,你直接复制去运行就是了
- HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>拖拽_demo</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script> <script src="http://code.jquery.com/ui/1.8.23/jquery-ui.min.js" type="text/javascript"></script> <style type="text/css"> body{ background-color:#777777; color:#FFFFFF; margin:0px; padding:18px 0 0 18px; font-size:12px; font-family:Arial, Helvetica, sans-serif; } .clear{clear:both;} .ui-sortable{ background-color:#FFFFFF; border:1px solid #555555; color:#222222; width:90px; margin:0 15px 15px 0; padding:0 10px 10px; } dl.sort dt{ background-color:#666666; color:#FFFFFF; cursor::default; height:2em; line-height:2em; padding:0px 6px; position:relative; } dl.sort dd{ background-color:#FFFFD8; margin:0px; padding:3px 6px; border-bottom:1px dotted #999999; border-left:1px dotted #999999; border-right:1px dotted #999999; } table{width:70px;height:auto;float:left;border:1px solid #bfbfbf;margin:5px;} tr{width:70px;float:left;} td{width:70px;float:left;} .dl-sort-placeholder{height:50px;border: 1px dashed red;background: #fbf9ee;color: #363636;} #content{float:left; width:90px;} #sidebar{float:left; width:90px;} </style> <script type="text/javascript"> var PageLayout=function(){ this.moveUp = function(){ //向上移动子项目 var link = $(this), dl = link.parents("dl"), prev = dl.prev("dl"); if(link.is(".up") && prev.length > 0){dl.insertBefore(prev);} } this.addItem = function(){ //添加一个子项目 var sortable = $(this).parents(".ui-sortable"); var options = '<span class="options"><a class="up"><img src="up.gif" border="0"></a></span>'; var html = '<dl class="sort"><dt>Dynamic name'+options+'</dt><dd>Description</dd></dl>'; sortable.append(html).sortable("refresh").find("a.up").bind("click", this.moveUp); } this.emptyTrashCan = function(o){ //回收站 o.remove(); } this.sortableChange = function(e, ui){ if(ui.sender){ var w = $(this).width(); ui.placeholder.width(w); ui.helper.css("width",$(this).children().width()); } } this.sortableUpdate = function(e, ui){ if(this.id == "trashcan"){ui.item.remove();}else{if(ui.sender){$("#a7").append("<dd>[table:id="+ui.item.attr("id")+"] 被拖入 [div:id="+$(this).attr("id")+"] 容器中</dd>")}} } this.Start=function(){ //引用主页面中的所有块 var els = ['#content', '#sidebar']; var $els = $(els.toString()); //使用jQuery插件 $els.sortable( 'enable' ); $els.sortable({ items: '> table', //拖拽对象 handle: 'tr', //可触发该事件的对象 cursor: 'move', //鼠标样式 opacity: 0.8, //拖拽时透明 appendTo: 'body', forcePlaceholderSize:false, revert:true, tolerance:'pointer', placeholder: 'dl-sort-placeholder', connectWith: els, start: function(e,ui) { }, stop:function (e,ui) { }, change: this.sortableChange, update: this.sortableUpdate //用于回收站 }); } this.Destory=function(){ //引用主页面中的所有块 var els = ['#header', '#content', '#sidebar', '#footer', '#trashcan']; var $els = $(els.toString()); $els.sortable( 'refresh' ); $els.sortable( 'disable' ); } } pl=new PageLayout(); window.onload=function(){ pl.Start(); } </script> </head> <body id="uidemo"> <button id="Button2" onclick="pl.Start()">允许拖拽</button> <button id="Button1" onclick="pl.Destory()">禁止拖拽</button> <div id="container"> <div id="content" class="ui-sortable"> <h2>teams左</h2> <table id="a1" class="sort"> <tbody> <tr> <td>aaaaa</td> <td>bbbb</td> <td>ccc</td> <td>ddd</td> </tr> </tbody> </table> <div class="clear"></div> <table id="a2" class="sort"> <tbody> <tr> <td>eee</td> <td>fff</td> <td>ggg</td> <td>hhh</td> </tr> </tbody> </table> </div> <div id="sidebar" class="ui-sortable"> <h2>teams右</h2> <dl class="sort" id="a7"> <dt>我是 拖拽记录</dt> </dl> <table id="a3" class="sort"> <tbody> <tr> <td>mmmm</td> <td>nnnn</td> <td>oooo</td> <td>pppp</td> </tr> </tbody> </table> <table id="a4" class="sort"> <tbody> <tr> <td>qqqq</td> <td>rrrr</td> <td>ssss</td> <td>tttt</td> </tr> </tbody> </table> </div> <div class="clear"></div> </div> </body> </html>