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 相关文章推荐
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 Javascript
node.js中的fs.createWriteStream方法使用说明
Dec 17 Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
JS控制伪元素的方法汇总
Apr 06 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
Apr 14 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
getElementById().innerHTML与getElementById().value的区别
Oct 27 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
Oct 12 Javascript
JS实现十分钟倒计时代码实例
Oct 18 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
Apr 10 Javascript
Vue axios 将传递的json数据转为form data的例子
Oct 29 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
Javascript - HTML的request类
2006/07/15 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
Javascript实现字数统计
2015/07/03 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
python发送邮件实例分享
2017/07/28 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
python numpy数组中的复制知识解析
2020/02/03 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
工业设计专业个人求职信范文
2013/12/28 职场文书
初三物理教学反思
2014/01/21 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
世界地球日活动总结
2015/02/09 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
队名及霸气口号大全
2015/12/25 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server