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


相关文章
|
29天前
|
JavaScript
jQuery实现判断li的个数从而实现其他功能
jQuery实现判断li的个数从而实现其他功能
12 0
|
1月前
|
JavaScript 前端开发
jQuery第一天---六大功能的简单应用
jQuery第一天---六大功能的简单应用
31 0
|
7月前
|
JSON JavaScript 前端开发
jQuery动画功能和封装原理
jQuery动画功能和封装原理
43 0
|
27天前
|
JavaScript
jQuery最简单的留言功能^-^
jQuery最简单的留言功能^-^
9 1
|
5月前
|
JavaScript 前端开发
jQuery点击图片来回切换功能
jQuery点击图片来回切换功能
63 0
jQuery点击图片来回切换功能
|
5月前
|
JavaScript 定位技术
jQuery实现点击图标div循环放大缩小功能
jQuery实现点击图标div循环放大缩小功能
31 0
|
10月前
|
JavaScript
jQuery实现下拉列表选择条目左右选择功能
jQuery实现下拉列表选择条目左右选择功能
|
11月前
|
JavaScript
jQuery最简单的留言功能^-^
jQuery最简单的留言功能^-^
65 0
|
移动开发 JavaScript 前端开发
如何使用jQuery实现地理围栏功能?
如何使用jQuery实现地理围栏功能?
|
JavaScript 前端开发 Java
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
jquery实现动态表格项目(表格增加删除/全选/表格变色特效) 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
266 0
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)