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 相关文章推荐
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
简述jQuery Easyui一些用法
Aug 01 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
Jquery Datatables的使用详解
Jan 30 jQuery
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 jQuery
jQuery实现的上拉刷新功能组件示例
May 01 jQuery
原生jQuery实现只显示年份下拉框
Dec 24 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
mysql 性能的检查和优化方法
2009/06/21 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
详解React 元素渲染
2020/07/07 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
Python中对列表排序实例
2015/01/04 Python
Python中的rfind()方法使用详解
2015/05/19 Python
用Python配平化学方程式的方法
2019/07/20 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
下载官网python并安装的步骤详解
2019/10/12 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
医学护理毕业生自荐信
2013/11/07 职场文书
企业办公室岗位职责
2014/03/12 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
小学清明节活动总结
2014/07/04 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
英语读书笔记
2015/07/02 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android