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 相关文章推荐
在视频前插入广告
Nov 20 Javascript
javascript ie6兼容position:fixed实现思路
Apr 01 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
Apr 15 Javascript
关于数据与后端进行交流匹配(点亮星星)
Aug 03 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
JS 实现计算器详解及实例代码(一)
Jan 08 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
layui前端框架之table表数据的刷新方法
Aug 17 Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
Mar 03 Javascript
基于JavaScript实现年月日三级联动
Jun 22 Javascript
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语法速查表
2007/01/02 PHP
逐步提升php框架的性能
2008/01/10 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
linux系统都有哪些运行级别
2012/04/15 面试题
中秋节礼品促销方案
2014/02/02 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
公司租房协议书
2014/10/14 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
家长会欢迎词
2015/01/23 职场文书
2016新年年会主持词
2015/07/06 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
Python自动化之批量处理工作簿和工作表
2021/06/03 Python