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制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
jQuery选择器之子元素选择器详解
Sep 18 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
Nov 13 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
jquery实现抽奖功能
Oct 22 jQuery
基于jQuery拖拽事件的封装
Nov 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
Function eregi is deprecated (解决方法)
2013/06/21 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
python3爬取torrent种子链接实例
2020/01/16 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
小区停车场管理制度
2014/01/27 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
七夕活动策划方案
2014/08/16 职场文书
学风建设演讲稿
2014/09/12 职场文书