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队列queue与原生模仿其实现方法分享
Mar 25 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
jQuery实现鼠标划过添加和删除class的方法
Jun 26 Javascript
jquery马赛克拼接翻转效果代码分享
Aug 24 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
Jan 08 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
javascript 中的继承实例详解
May 05 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
vue使用drag与drop实现拖拽的示例代码
Sep 07 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
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循环获取GET和POST值的代码
2008/04/09 PHP
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP常用数组函数介绍
2014/07/28 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
简单实现python收发邮件功能
2018/01/05 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
python的re模块使用方法详解
2019/07/26 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python__name__原理及用法详解
2019/11/02 Python
Python中实现输入一个整数的案例
2020/05/03 Python
python 实现超级玛丽游戏
2020/11/25 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
LINUX下线程,GDI类的解释
2012/04/17 面试题
经典演讲稿汇总
2014/05/19 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
win10更新失败无限重启解决方法
2022/04/19 数码科技