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 相关文章推荐
js tab 选项卡
Apr 26 Javascript
关于document.cookie的使用javascript
Oct 29 Javascript
JS中判断null、undefined与NaN的方法
Mar 26 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
Apr 22 Javascript
JavaScript的Date()方法使用详解
Jun 09 Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 Javascript
Vue实现动态显示textarea剩余字数
May 22 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
原生js实现each方法实例代码详解
May 27 Javascript
JS轮播图的实现方法2
Aug 25 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可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
php接口隔离原则实例分析
2019/11/11 PHP
PHP实现简单日历类编写
2020/08/28 PHP
简单的代码实现jquery定时器
2014/01/03 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
Python计算三角函数之asin()方法的使用
2015/05/15 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
keras K.function获取某层的输出操作
2020/06/29 Python
Python日志器使用方法及原理解析
2020/09/27 Python
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
使用 JavaScript 制作页面效果
2021/04/21 Javascript
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
利用Python实现Picgo图床工具
2021/11/23 Python