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 相关文章推荐
csdn 论坛技术区平均给分功能
Nov 07 Javascript
JQuery的Alert消息框插件使用介绍
Oct 09 Javascript
Javascript 静态页面实现随机显示广告的办法
Nov 17 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
Bootstrap 粘页脚效果
Mar 28 Javascript
Vue 单文件中的数据传递示例
Mar 21 Javascript
vue实现验证码输入框组件
Dec 14 Javascript
JavaScript中严格判断NaN的方法
Feb 16 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
JS实现水平移动与垂直移动动画
Dec 19 Javascript
vue实现移动端项目多行文本溢出省略
Jul 29 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输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
Yii核心验证器api详解
2016/11/23 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
python实现自动网页截图并裁剪图片
2018/07/30 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
竞争上岗演讲稿
2014/01/05 职场文书
十佳教师事迹材料
2014/01/11 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
儿童生日会策划方案
2014/05/15 职场文书
相亲大会策划方案
2014/06/05 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
升职感谢信
2015/01/22 职场文书
2016党员入党决心书
2015/09/22 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
python实现黄金分割法的示例代码
2021/04/28 Python