详解有关easyUI的拖动操作中droppable,draggable用法例子


Posted in Javascript onJune 03, 2017

这个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="js/jquery.js"></script>
  <script src="js/jquery.easyui.min.js"></script>
  <script src="js/demo.js"></script>
</body>
</html>

-------------以下为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');
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现的动态添加表单元素input,button等(appendChild)
Nov 24 Javascript
jquery nth-child()选择器的简单应用
Jul 10 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
Aug 11 Javascript
jquery.form.js用法之清空form的方法
Mar 07 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
Apr 17 Javascript
JavaScript实现给定时间相加天数的方法
Jan 25 Javascript
JavaScript实现邮箱地址自动匹配功能代码
Nov 28 Javascript
微信小程序 石头剪刀布实例代码
Jan 04 Javascript
基于jQuery实现的单行公告活动轮播效果
Aug 23 jQuery
react学习笔记之state以及setState的使用
Dec 07 Javascript
JS实现常见的查找、排序、去重算法示例
May 21 Javascript
前端防止用户重复提交js实现代码示例
Sep 07 Javascript
利用vueJs实现图片轮播实例代码
Jun 03 #Javascript
angular中使用Socket.io实例代码
Jun 03 #Javascript
jquery请求servlet实现ajax异步请求的示例
Jun 03 #jQuery
深入理解Node中的buffer模块
Jun 03 #Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 #Javascript
全面解析Node.js 8 重要功能和修复
Jun 02 #Javascript
vue 中自定义指令改变data中的值
Jun 02 #Javascript
You might like
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
python计算最小优先级队列代码分享
2013/12/18 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
对python中return和print的一些理解
2017/08/18 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
python连接mongodb密码认证实例
2018/10/16 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
.NET面试问题集
2015/12/08 面试题
祖国在我心中演讲稿500字
2014/05/04 职场文书
贷款担保申请书
2014/05/20 职场文书
吴仁宝观后感
2015/06/09 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
八年级语文教学反思
2016/03/03 职场文书