jQuery拖动元素并对元素进行重新排序


Posted in Javascript onDecember 30, 2015

本文实例讲述了jQuery拖动元素并对元素进行重新排序的实现方法,分享给大家供大家参考,具体实现内容如下

效果图:

jQuery拖动元素并对元素进行重新排序

具体内容如下:

从上图可以看出我们今天要实现的功能。当用户拖动一个图片时,就能改变图片的已有排序并更新表中的排列顺序。比如用户可以随意拖动我们网站中的布局,如谷歌iGoogle就已经实现了。这样便很好的提高了用户体验。

下边,我们一步一步来实现这个功能。

<span id="show">
<div>
  <input id="check" type="checkbox" />
</div>
<div>
  <input type="hidden" id="orderlist" />
  <ul id="list">
    <asp:Repeater ID="rptOrder" runat="server">
    <ItemTemplate>
      <li id="<%#Eval("ID") %>" title="<%#Eval("OrderID") %>">
        <img alt="img" src="<%#Eval("Link") %>" />
      </li>
    </ItemTemplate>
    </asp:Repeater>   
  </ul>
</div>

有一个单选框,当用户选中后,拖动图片时对数据库中数据排序进行更改。隐藏域保存原来的图片排列顺序。ul显示图片列表。

为了能看得过去,稍微加了点样式:

var show = jQuery("#show"); //输出提示 
var orderlist = jQuery("#orderlist"); //原顺序 
var check = jQuery("#check"); //是否更新到数据库

首先将常用的选择器保存下来,这样后边调用就变得比较简洁。这一部大家肯定没有问题。^_^

//保存原来的排列顺序 
var order = []; 
list.children("li").each(function() { 
  order.push(this.title); //原排列顺序保存在title,得到后更改title 
  jQuery(this).attr("title", "你可以拖动进行排序"); 
}); 
orderlist.val(order.join(','));

保存原来的排列顺序到隐藏域。这里用到了数组的push()方法,就是将ul每个li中的title(原来的排列顺序)添加到数组中。最后用join()方法,得到了原排列顺序,返回一个字符串。现在排列顺序格式为1,2,3 。

//ajax更新 
var Update = function(itemid, itemorder) { 
  jQuery.ajax({ 
    type: "post", 
    url: "update.aspx", 
    //id:新的排列对应的ID,order:原排列顺序
    data: { id: itemid, order: orderlist.val() },  
    beforeSend: function() { 
      show.html("正在更新"); 
    }, 
    success: function() { 
      show.html("更新成功"); 
    } 
  }); 
};

接下来,将ajax更新块单独分出来。这样程序变得比较整洁,这块没有新东西。

//调用ajax更新方法 
var Submit = function(update) { 
  var order = []; 
  list.children("li").each(function() { 
    order.push(this.id); 
  }); 
  var itemid = order.join(','); 
  //如果单选框选中,则更新表中排列顺序 
  if (update) { 
    Update(itemid); 
  } 
  else { 
    show.html(""); 
  } 
};

和得到排列顺序类似,将ID组成一个字符串传递给了Update()方法。函数中的参数update为checkbox是否选中。

//执行排列操作 
list.sortable({ 
  opacity: 0.7, 
  update: function() { 
    Submit(check.attr("checked")); 
  } 
});

最后,执行排列操作。后台部分就是对现在ID对应原来排列顺序的更新,相信大家并不陌生。

可以看出如果不进行数据库操作,该插件只需要调用sorttable便可完成对元素的拖动。

以上就是jQuery拖动元素并对元素进行重新排序的实现方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JavaScript与函数式编程解释
Apr 27 Javascript
Javascript 验证上传图片大小[客户端]
Aug 01 Javascript
jQuery学习笔记之jQuery的事件
Dec 22 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
全面了解addEventListener和on的区别
Jul 14 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
Sep 05 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 Javascript
Vue2.0点击切换类名改变样式的方法
Aug 22 Javascript
vue使用swiper.js重叠轮播组建样式
Nov 14 Javascript
Vue的状态管理vuex使用方法详解
Feb 05 Javascript
解决vue字符串换行问题(绝对管用)
Aug 06 Javascript
jQuery给元素添加样式的方法详解
Dec 30 #Javascript
Underscore源码分析
Dec 30 #Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 #Javascript
javascript实现禁止复制网页内容汇总
Dec 30 #Javascript
jquery实现树形菜单完整代码
Dec 29 #Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 #Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 #Javascript
You might like
PHP常见数组函数用法小结
2016/03/21 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
django-初始配置(纯手写)详解
2019/07/30 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
戴森英国官网:Dyson英国
2019/05/07 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
机械设计职业生涯规划书
2013/12/27 职场文书
大学活动策划书范文
2014/01/10 职场文书
初中语文教学反思
2014/02/02 职场文书
社会实践活动总结报告
2014/04/29 职场文书
物理学专业求职信
2014/07/04 职场文书
确保工程质量承诺书
2015/04/29 职场文书
工作调动申请报告
2015/05/18 职场文书
走进毛泽东观后感
2015/06/04 职场文书
心术观后感
2015/06/11 职场文书
初中军训感言
2015/08/01 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
以下牛机,你有几个
2022/04/05 无线电