jquery ui sortable拖拽后保存位置


Posted in jQuery onApril 27, 2017

jqueryUI sortable 可以用来进行页面拖拽布局,然而有一个小问题就是拖拽后如何保存状态。

工作中遇到了这个情况,遍把这个问题记了下来,具体思路是:

利用拖拽stop后利用

 var arr = $( ".sortable" ).sortable('toArray');

记录拖拽后的id数组顺序,然后把这个数组存起来,可以存cookie,数据库,localstorage等,刷新页面后读取这个数组,然后进行重新排序。

具体的代码如下可直接复制运行。本文将数组保存在localstorage里面。

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>jQuery UI 拖动(Draggable) - 约束运动</title>
 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css" rel="external nofollow" >
 <script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script>
 <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
 <!-- <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css" rel="external nofollow" > -->
 <style>
  *{
   margin:0;
   padding: 0;
   box-sizing: border-box;
  }
  .container{
   border: 1px solid black;
   margin-bottom: 10px;
   margin-top: 10px;
  }
  .container:after{
   content: "";
   display: block;
   clear: both;
  }
  .drag{
   width: 200px;
   height: 200px;
   float: left;
  }
  ul li {
   list-style: none;
  }
  .innerdiv{
   padding: 10px;
   height: 100%;
  }
  .innerdiv2{
    background: grey;
    height: 100%;
   }
  #draggable1{
   width: 400px;
   height: 400px;
  }
 .move{
  width: 80px;
  height: 40px;
  background: blanchedalmond;
 }
 </style>
 <script>
 $(function() {
  var arr = '';
  var sort = $( ".sortable" ).sortable({
    handle: ".move",
    opacity: 0.7,
    delay: 150,
    cursor:'move',
    revert: true,
    stop:function(){
 //记录sort后的id顺序数组
    var arr = $( ".sortable" ).sortable('toArray');
      console.log(arr);
//拖拽后利用localStorage记录顺序
      localStorage.arr = arr;
    }
  });
  var localSt = localStorage.arr;
  //如果有localst记录则,按照这个进行排序元素
  if(localSt){
    var resArr = localSt.split(',');
    var resUl = $('ul');
    //li 数组
    for(var i = 0;i < resArr.length;i++){
      resUl.append($("#" + resArr[i]));
    }
  }
 });
 </script>
</head>
<body>
  <div class="container">
   <ul class="sortable">
     <li id="draggable2" class="drag">
      <div class="innerdiv">
        <div class="innerdiv2">
         <div class="move">放在这里</div> 
         只有鼠标放在小长方形里才能移动
        </div>
      </div>
     </li>
     <li id="draggable3" class="drag">
       <div class="innerdiv">
        <div class="innerdiv2">
        <div class="move">放在这里</div> 
        </div>
     </div>
     </li> 
     <li id="draggable4" class="drag">
       <div class="innerdiv">
         <div class="innerdiv2">
         <div class="move">放在这里</div> 
        </div>
       </div>
     </li> 
     <li id="draggable5" class="drag">
       <div class="innerdiv">
         <div class="innerdiv2">
         <div class="move">放在这里</div> 
         </div>
       </div>
     </li> 
     <li id="draggable6" class="drag">
       <div class="innerdiv">
         <div class="innerdiv2">
         <div class="move">放在这里</div> 
        </div>
     </div>
     <li id="draggable1" class="drag">
       <div class="innerdiv">
        <div class="innerdiv2">
         <div class="move">放在这里</div> 
        </div>
       </div>
     </li>
     </li> 
   </ul>
  </div>
</body>
</html>

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

jQuery 相关文章推荐
bootstrap+jQuery实现的动态进度条功能示例
May 25 jQuery
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
jqueryUI tab标签页代码分享
Oct 09 jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
jQuery实现判断滚动条滚动到document底部的方法分析
Aug 27 jQuery
9种方法优化jQuery代码详解
Feb 04 jQuery
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 jQuery
jquery 禁止鼠标右键并监听右键事件
Apr 27 #jQuery
jQuery EasyUI tree增加搜索功能的实现方法
Apr 27 #jQuery
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 #jQuery
jQuery使用正则验证15/18身份证的方法示例
Apr 27 #jQuery
jQuery鼠标悬停内容动画切换效果
Apr 27 #jQuery
使用jQuery,Angular实现登录界面验证码详解
Apr 27 #jQuery
jQuery实现鼠标滑过预览图片大图效果的方法
Apr 26 #jQuery
You might like
php取得字符串首字母的方法
2015/03/25 PHP
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python heapq使用详解及实例代码
2017/01/25 Python
Python内存读写操作示例
2018/07/18 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
python em算法的实现
2020/10/03 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
开业庆典邀请函
2014/01/08 职场文书
旷课检讨书1000字
2014/02/14 职场文书
卖车协议书
2014/04/21 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
副总经理岗位职责
2015/02/02 职场文书
岳庙导游词
2015/02/04 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python