当前位置: 首页 > news >正文

排序功能实现 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>
                                        &nbsp;&nbsp;
                                        <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');
                }
复制代码


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5088469.html,如需转载请自行联系原作者

相关文章:

  • 细说WCF中的会话模式
  • 回声状态网络(ESN)基础教程
  • C# 序列化
  • VisualSVN 手动记录访问日志
  • JDBC(连接池) -- 02(I)
  • windows   8   OneNoteMX
  • 第二次作业-Steam软件分析
  • [面试] 组合(非递归)
  • Which garbage collection strategy is using
  • OutputCache造成页面响应内容类型为text/vnd.wap.wml的问题
  • windws 8 应用小技巧(11-15)
  • Mac禁用ipv6
  • C语言程序设计第一次作业
  • 学习PrintWriter类
  • 物联网设备漏洞不断增加 五大安全层面随时检视
  • Elasticsearch 参考指南(升级前重新索引)
  • extract-text-webpack-plugin用法
  • in typeof instanceof ===这些运算符有什么作用
  • iOS小技巧之UIImagePickerController实现头像选择
  • javascript从右向左截取指定位数字符的3种方法
  • Java多线程(4):使用线程池执行定时任务
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Octave 入门
  • vue脚手架vue-cli
  • 动态规划入门(以爬楼梯为例)
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端
  • 前端路由实现-history
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 运行时添加log4j2的appender
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 智能网联汽车信息安全
  • C# - 为值类型重定义相等性
  • mysql面试题分组并合并列
  • ​ssh免密码登录设置及问题总结
  • #stm32整理(一)flash读写
  • (1)Android开发优化---------UI优化
  • (26)4.7 字符函数和字符串函数
  • (Git) gitignore基础使用
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (汇总)os模块以及shutil模块对文件的操作
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (算法)求1到1亿间的质数或素数
  • (原創) 未来三学期想要修的课 (日記)
  • (转)h264中avc和flv数据的解析
  • (转)LINQ之路
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • [20160807][系统设计的三次迭代]
  • [2018-01-08] Python强化周的第一天