详解有关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优先加载笔记代码
Sep 30 Javascript
Javascript 继承机制的实现
Aug 12 Javascript
js 对小数加法精度处理示例说明
Dec 27 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 Javascript
Node.js五大应用性能技巧小结(必须收藏)
Aug 09 Javascript
详解Web使用webpack构建前端项目
Sep 23 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
Sep 25 Javascript
JS动态显示倒计时效果
Dec 12 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性能优化的介绍
2013/06/20 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
Python实现数值积分方式
2019/11/20 Python
Python Lambda函数使用总结详解
2019/12/11 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
护士求职推荐信范文
2013/11/23 职场文书
老师对学生的评语
2014/04/18 职场文书
化学教育专业求职信
2014/07/08 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
班主任自我评价范文
2015/03/11 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
python 下划线的多种应用场景总结
2021/05/12 Python