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 相关文章推荐
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
Oct 31 Javascript
jQuery Jcrop插件实现图片选取功能
Nov 23 Javascript
jquery实现鼠标拖动图片效果示例代码
Jan 09 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
Mar 15 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
详解JavaScript的回调函数
Nov 20 Javascript
jquery实现数字输入框
Feb 22 Javascript
Nuxt.js踩坑总结分享
Jan 18 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
vue实现在v-html的html字符串中绑定事件
Oct 28 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
关于我转生变成史莱姆这档事:第二季PV上线,萌王2021年回归
2020/05/06 日漫
编译问题
2006/10/09 PHP
?生?D片??C字串
2006/12/06 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
Python subprocess模块学习总结
2014/03/13 Python
Python reduce()函数的用法小结
2017/11/15 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
详解Python:面向对象编程
2019/04/10 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
《理想》教学反思
2014/02/17 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
优质护理服务心得体会
2016/01/22 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python