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+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
jQuery Tools Dateinput使用介绍
Jul 14 Javascript
javascript常用对话框小集
Sep 13 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
Jan 03 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
js和jquery实现监听键盘事件示例代码
Jun 24 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
Jul 05 Javascript
canvas绘制的直线动画
Jan 23 Javascript
微信小程序实现折叠面板
Jan 31 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 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 file_get_contents函数轻松采集html数据
2010/04/22 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
Python创建日历实例
2014/08/21 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
SQL Server数据库笔试题和答案
2016/02/04 面试题
称象教学反思
2014/02/03 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
2014年党委工作总结
2014/11/22 职场文书
2015年小学开学寄语
2015/02/27 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python