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性能最佳实践的讨论,与求教
Mar 30 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
Dec 19 Javascript
js 左右悬浮对联广告特效代码
Dec 12 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
Mar 29 Javascript
基于node下的http小爬虫的示例代码
Jan 11 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
Oct 26 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
微信小程序实现首页弹出广告
Dec 03 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类
2008/04/09 PHP
Zend 输出产生XML解析错误
2009/03/03 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
基于jquery的滚动新闻列表
2010/06/19 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python基于当前时间批量创建文件
2020/05/07 Python
PyTorch-GPU加速实例
2020/06/23 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
全球精选男装和家居用品:Article
2020/04/13 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
工程造价专业大学生自荐信
2013/10/01 职场文书
大学生就业自荐信
2013/10/26 职场文书
销售找工作求职信
2013/12/20 职场文书
大学生个人自荐信
2014/02/24 职场文书
毕业自我鉴定书
2014/03/24 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
六年级小学生评语
2014/12/26 职场文书
关于童年的读书笔记
2015/06/26 职场文书
孙振耀退休感言
2015/08/01 职场文书