jQuery基于排序功能实现上移、下移的方法


Posted in Javascript onNovember 26, 2016

本文实例讲述了jQuery基于排序功能实现上移、下移的方法。分享给大家供大家参考,具体如下:

效果

jQuery基于排序功能实现上移、下移的方法

思路,

跟相邻元素,互换sort。

前提是每一个元素都有自己的sort值,不为零。

<tr id="{sh:$vo.id}">
  <td>
    <span onclick="up(this);" class="glyphicon glyphicon-arrow-up text-danger up" style="cursor: pointer;" title="上移" aria-hidden="true"></span>
      
    <span onclick="down(this);" class="glyphicon glyphicon-arrow-down text-danger down" style="cursor: pointer;" title="下移" aria-hidden="true"></span>
  </td>
  <td>
    <span title="{sh:$vo.user_id}">{sh:$vo.store_name}</span>
  </td>
  <td class="center"><a href="{sh:$vo.logo}" target="_blank"><img src="{sh:$vo.logo}" width='30px;'></td>
  <td class="center">{sh:$vo.category_name}</td>
  <td class="center edit">
    <a val="{sh:$vo.store_id}" onclick="view(this);" class="view btn btn-success" href="javascript:void(0);" title="查看">
      <i class="halflings-icon white zoom-in"></i>
    </a>
  </td>
</tr>

点击,触发up方法,down方法。

获取当前id。

通过jQuery,获取相邻的元素。

// 上移
function up(obj){
  var $tr = $(obj).parents("tr");
  if ($tr.index() != 0) {
    var current_id  = $tr.attr('id');
    var exchange_id  = $tr.prev("tr").attr('id');
    $.ajax({
      url: '{sh::U("Mall/ajax","todo=exchange_sort")}',
      type: 'POST',
      data: 'current_id='+current_id+'&exchange_id='+exchange_id,
      success:function(json) {
        if (json == 1) {
          $tr.fadeOut().fadeIn();
          $tr.prev().before($tr); 
          layer.msg('上移成功', {icon: 1});
        } else {
          layer.msg('上移失败', {icon: 2});
        }
      }
    });
  }
}
// 下移
function down(obj) {
  var len = $(".down").length;
  var $tr = $(obj).parents("tr");
    if ($tr.index() != len - 1) { 
      var current_id  = $tr.attr('id');
      var exchange_id  = $tr.next("tr").attr('id');
      $.ajax({
        url: '{sh::U("Mall/ajax","todo=exchange_sort")}',
        type: 'POST',
        data: 'current_id='+current_id+'&exchange_id='+exchange_id,
        success:function(json) {
          if (json == 1) {
            $tr.fadeOut().fadeIn();
            $tr.next().after($tr); 
            layer.msg('下移成功', {icon: 1});
          } else {
            layer.msg('下移失败', {icon: 2});
          }
        }
      });
  } 
}

这里用到了几个jQuery方法,prev(),next(),before(),after()。以及效果,fadeOut(),fadeIn()。以及一些简单的逻辑判断和技巧。

php后台处理,

case 'exchange_sort':
$mallShopModel = M('Mall_shop');
$current_id  = $this->_post('current_id','trim');
$exchange_id  = $this->_post('exchange_id','trim');
$current_sort = $mallShopModel->where(array('id'=>$exchange_id))->getField('sort');
$exchange_sort = $mallShopModel->where(array('id'=>$current_id))->getField('sort');
$cdata['id']  = $current_id;
$cdata['sort'] = $current_sort;
$cres     = $mallShopModel->save($cdata);
$edata['id']  = $exchange_id;
$edata['sort']  = $exchange_sort;
$eres     = $mallShopModel->save($edata);
if ($cres !== FALSE && $eres !== FALSE){
  exit('1');
} else {
  exit('2');
}

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
jquery tab插件精简版分享
Sep 10 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
javascript HTML5文件上传FileReader API
Mar 27 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
微信小程序 picker 组件详解及简单实例
Jan 10 Javascript
vue渲染时闪烁{{}}的问题及解决方法
Mar 28 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
Nov 21 Javascript
vue实现的组件兄弟间通信功能示例
Dec 04 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
Sep 10 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
node.js中的事件处理机制详解
Nov 26 #Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 #Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 #Javascript
JS基于递归实现倒计时效果的方法
Nov 26 #Javascript
如何在Angular.JS中接收并下载PDF
Nov 26 #Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 #Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 #Javascript
You might like
php 各种应用乱码问题的解决方法
2010/05/09 PHP
php随机输出名人名言的代码
2012/10/07 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP网络操作函数汇总
2015/05/18 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
python self,cls,decorator的理解
2009/07/13 Python
Python实现网站文件的全备份和差异备份
2014/11/30 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
如何选择使用结构还是类
2014/05/30 面试题
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
体育教师工作总结的自我评价
2013/10/10 职场文书
房屋转让协议书
2014/04/11 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
销售工作决心书
2015/02/04 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书