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 相关文章推荐
window.showModalDialog()返回值的学习心得总结
Jan 07 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
JSON与String互转的实现方法(Javascript)
Sep 27 Javascript
Node.js 实现简单小说爬虫实例
Nov 18 Javascript
微信小程序通过api接口将json数据展现到小程序示例
Jan 20 Javascript
微信小程序 弹窗自定义实例代码
Mar 08 Javascript
AngularJS基于factory创建自定义服务的方法详解
May 25 Javascript
微信小程序实现同一页面取值的方法分析
Apr 30 Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 Javascript
浅析vue-router实现原理及两种模式
Feb 11 Javascript
js实现日历
Nov 07 Javascript
jquery自定义组件实例详解
Dec 31 jQuery
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
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php生成随机颜色的方法
2014/11/13 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
[02:27]2014DOTA2国际邀请赛 VG赛后采访:更大的挑战在等着我们
2014/07/13 DOTA
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python字符串格式化
2015/06/15 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
Django视图和URL配置详解
2018/01/31 Python
python2与python3共存问题的解决方法
2018/09/18 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
Python利用命名空间解析XML文档
2020/08/10 Python
python开发入门——列表生成式
2020/09/03 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
公益活动策划方案
2014/01/09 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
运动会加油稿50字
2015/07/21 职场文书
情况说明书格式及范文
2019/06/24 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
python中Matplotlib绘制直线的实例代码
2021/07/04 Python