这个demo展示的效果为:从上面可以拖动到下面相应的框中(原有的不能再拖动),拖动框中的东西到外面可以取消
-----------以下为HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <link rel="stylesheet" type="text/css" href="css/bootstrap-3.3.5/css/bootstrap.min.css" rel="external nofollow" > <link rel="stylesheet" type="text/css" href="css/easyui.css" rel="external nofollow" > <link rel="stylesheet" type="text/css" href="css/icon.css" rel="external nofollow" > <link rel="stylesheet" href="css/demo.css" rel="external nofollow" > </head> <body> <div class="container"> <ul class="items"> <li class="category"> <i></i> <span>品类</span> </li> <li class="factory"> <i></i> <span>工厂</span> </li> <li class="with-high"> <i></i> <span>跟高</span> </li> <li class="with-type"> <i></i> <span>跟型</span> </li> <li class="price"> <i></i> <span>单价</span> </li> </ul> <div class="target"> <div class="target-cascade"> <span>级联统计指标</span> <ul> </ul> </div> <div class="target-column"> <span>列指标</span> <ul> </ul> </div> </div> </div> <script src="/UploadFiles/2021-04-02/jquery.js">-------------以下为js代码
var tab = []; $('.items li').draggable({ proxy: 'clone', revert: true }); // 级联统计指标放置区 $('.target-cascade').droppable({ onDragEnter: function(e,source){ $(this).css('border','1px solid red'); }, onDragLeave: function(e,source){ $(this).css('border','1px solid black'); }, onDrop: function(e,source){ // 判断拖动的元素是否存在于放置区内 if($(source).draggable('options').proxy === 'clone'){ // 禁用拖动 NotDrag(source); // 将拖入元素的原位置记录下来 var buttonName = $(source).find('span').html(); console.log("--------"+$(source).index()); tab[buttonName] = $(source).index();//返回指定元素相对于其他元素的位置(0,1等),如果没有找到,则返回-1 var Ele = $('<li class='+ $(source)[0].className +'><button>'+ buttonName +'</button></li>'); Ele.appendTo('.target-cascade ul'); } $(this).css('border','1px solid black'); // 拖动放置区内的元素 $(this).find('button').draggable({ revert: true, onStopDrag: function(e){ var _index = tab[$(this).html()]; $(this).parent().remove(); $('.items li:eq('+_index+')').draggable('enable'); $('.items li:eq('+_index+')').find('i').css('backgroundColor','red'); } }); } }); // 列指标放置区 $('.target-column').droppable({ onDragEnter: function(e,source){ $(this).css('border','1px solid red'); }, onDragLeave: function(e,source){ $(this).css('border','1px solid black'); }, onDrop: function(e,source){ // 判断拖动的元素是否存在于放置区内 if($(source).draggable('options').proxy === 'clone'){ // 禁用拖动 NotDrag(source); var buttonName = $(source).find('span').html(); tab[buttonName] = $(source).index(); var Ele = $('<li class='+ $(source)[0].className +'><button>'+ buttonName +'</button><select><option value ="show">显示</option>'+ '<option value ="sum">求和</option><option value ="count">计数</option></select></li>'); Ele.appendTo('.target-column ul'); } $(this).css('border','1px solid black'); // 拖动放置区内的元素 $(this).find('button').draggable({ revert: true, onDrag: function(e){ $(e.data.parent).find('select').hide(); }, onStopDrag: function(e){ var _index = tab[$(this).html()]; $(this).parent().remove(); $('.items li:eq('+_index+')').draggable('enable'); $('.items li:eq('+_index+')').find('i').css('backgroundColor','red'); $(e.target).siblings('select').show(); } }); } }); //禁止拖动 function NotDrag(source){ $(source).draggable('disable');//禁用拖动动作 $(source).find('i').css('backgroundColor','grey'); }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“详解有关easyUI的拖动操作中droppable,draggable用法例子”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。