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.masonry瀑布流效果
May 25 jQuery
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
jQuery中过滤器的基本用法示例
Oct 11 jQuery
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
jQuery无冲突模式详解
Jan 17 jQuery
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
jquery操作select常见方法大全【7种情况】
May 28 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jQuery实时统计输入框字数及限制
Jun 24 jQuery
jQuery ajax - getScript() 方法和getJSON方法
May 14 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
Python中的lstrip()方法使用简介
2015/05/19 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
实习单位推荐信范文
2013/11/27 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
科技节口号
2014/06/19 职场文书
作风整顿剖析材料
2014/09/30 职场文书
网络营销计划书
2015/01/17 职场文书
求职信格式范文
2015/03/19 职场文书
党员个人承诺书
2015/04/27 职场文书