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制作sql转换为stringBuffer的小工具
Apr 03 Javascript
jquery中ready()函数执行的时机和window的load事件比较
Jun 22 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 Javascript
封装获取dom元素的简单实例
Jul 08 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
浅谈js算法和流程控制
Dec 29 Javascript
nuxt.js 缓存实践
Jun 25 Javascript
JS实现的类似微信聊天效果示例
Jan 29 Javascript
微信小程序实现banner图轮播效果
Jun 28 Javascript
JS使用数组实现的队列功能示例
Mar 04 Javascript
解决layui富文本编辑器图片上传无法回显的问题
Sep 18 Javascript
使用jQuery实现掷骰子游戏
Oct 24 jQuery
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
德生1994机评
2021/03/02 无线电
PHP4在Windows2000下的安装
2006/10/09 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
jquery对表单操作2
2011/04/06 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
python基础教程之对象和类的实际运用
2014/08/29 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
2013英文求职信模板范文
2013/11/15 职场文书
任命书格式
2014/06/05 职场文书
开展创先争优活动总结
2014/08/28 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书