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 相关文章推荐
十个优秀的Ajax/Javascript实例网站收集
Mar 31 Javascript
使用node.js 获取客户端信息代码分享
Nov 26 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
详解使用vuex进行菜单管理
Dec 21 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
May 16 Javascript
利用Dectorator分模块存储Vuex状态的实现
Feb 05 Javascript
vue--vuex详解
Apr 15 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 Javascript
深入了解Vue.js 混入(mixins)
Jul 23 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
深入了解php4(2)--重访过去
2006/10/09 PHP
数字转英文
2006/12/06 PHP
dedecms中常见问题修改方法总结
2007/03/21 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
php绘制一条直线的方法
2015/01/24 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
Angularjs上传图片实例详解
2017/08/06 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python回调函数用法实例详解
2015/07/02 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Python函数中不定长参数的写法
2019/02/13 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
python名片管理系统开发
2020/06/18 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
本科毕业生自荐信
2014/05/26 职场文书
新课培训心得体会
2014/09/03 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
房产证明范本
2015/06/19 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL