详解有关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 相关文章推荐
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
js渐变显示渐变消失示例代码
Aug 01 Javascript
js中的scroll和offset 使用比较的实例与分析
Sep 29 Javascript
关闭ie窗口清除Session的解决方法
Jan 10 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
Dec 07 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
May 28 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
Aug 29 Javascript
更靠谱的H5横竖屏检测方法(js代码)
Sep 13 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
js实现GIF动图分解成多帧图片上传
Oct 24 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解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
js操作二级联动实现代码
2010/07/27 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
checkbox在vue中的用法小结
2018/11/13 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
python+opencv轮廓检测代码解析
2018/01/05 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
浅谈Python中的模块
2020/06/10 Python
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
机械制造与自动化应届生求职信
2013/11/16 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
小学教师国培感言
2014/02/08 职场文书
意向书范文
2014/03/31 职场文书
空气的环保标语
2014/06/12 职场文书
索赔员岗位职责
2015/02/15 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
市场营销计划书
2019/04/24 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL