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

发布时间 - 2026-01-11 01:42:22    点击率:

这个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');
}

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


# draggable  # droppable  # easyui  # 拖动例子  # draggable例子  # jQuery easyui的validatebox校验规则扩展及easyui校验框validateb  # easyui的tabs update正确用法分享  # jquery easyui中treegrid用法的简单实例  # EasyUI中的tree用法介绍  # jQuery EasyUI NumberBox(数字框)的用法  # 简述jQuery Easyui一些用法  # 拖动  # 区内  # 框中  # 是否存在  # 级联  # 如果没有  # 相对于  # 能再  # 大家多多  # 拖入  # nofollow  # external  # body  # icon  # min  # css  # demo  # href  # bootstrap 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在腾讯云免费申请建站?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何用美橙互联一键搭建多站合一网站?  Python文件流缓冲机制_IO性能解析【教程】  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何在Windows环境下新建FTP站点并设置权限?  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何在云服务器上快速搭建个人网站?  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  如何在阿里云域名上完成建站全流程?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  iOS发送验证码倒计时应用  如何确保FTP站点访问权限与数据传输安全?  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  如何快速生成凡客建站的专业级图册?  Android 常见的图片加载框架详细介绍  Laravel如何实现多对多模型关联?(Eloquent教程)  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  ,南京靠谱的征婚网站?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  javascript日期怎么处理_如何格式化输出  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel如何使用withoutEvents方法临时禁用模型事件  专业商城网站制作公司有哪些,pi商城官网是哪个?  昵图网官方站入口 昵图网素材图库官网入口  Laravel如何生成URL和重定向?(路由助手函数)  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  如何用虚拟主机快速搭建网站?详细步骤解析  什么是javascript作用域_全局和局部作用域有什么区别?  如何在企业微信快速生成手机电脑官网?  Laravel怎么使用Intervention Image库处理图片上传和缩放  UC浏览器如何设置启动页 UC浏览器启动页设置方法  JavaScript如何实现继承_有哪些常用方法  Java遍历集合的三种方式  高端智能建站公司优选:品牌定制与SEO优化一站式服务  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何快速打造个性化非模板自助建站?  JavaScript如何实现路由_前端路由原理是什么  如何快速生成高效建站系统源代码?  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  西安专业网站制作公司有哪些,陕西省建行官方网站?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Claude怎样写约束型提示词_Claude约束提示词写法【教程】