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实现前端分页功能
Mar 23 jQuery
jquery中each循环的简单回滚操作
May 05 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
jQuery中DOM操作原则实例分析
Aug 01 jQuery
JQuery样式与属性设置方法分析
Dec 07 jQuery
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
Feb 01 jQuery
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 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需登录的文件上传管理系统
2020/03/21 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
python实现定时播放mp3
2015/03/29 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
幼儿园小班教学反思
2014/02/02 职场文书
自行车广告词大全
2014/03/21 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
县级文明单位申报材料
2014/05/23 职场文书
无犯罪记录证明
2014/09/19 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
python如何读取和存储dict()与.json格式文件
2022/06/25 Python