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实现简单的滑动导航代码(移动端)
May 22 jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
jQuery菜单实例(全选,反选,取消)
Aug 28 jQuery
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
jquery实现动态改变css样式的方法分析
May 27 jQuery
jquery操作select常见方法大全【7种情况】
May 28 jQuery
jQuery实现checkbox全选、反选及删除等操作的方法详解
Aug 02 jQuery
基于JQuery实现页面定时弹出广告
May 08 jQuery
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
jQuery冲突问题解决方法
Jan 19 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
文件上传程序的全部源码
2006/10/09 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
通过shell+python实现企业微信预警
2019/03/07 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
暑期社会实践方案
2014/02/05 职场文书
微笑服务演讲稿
2014/05/13 职场文书
法院授权委托书范文
2014/08/02 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js