jQuery使用mouseup,mousedown进行排序

时间:2017-07-24 19:13:42

标签: jquery jquery-ui-sortable

我尝试使用jQuery Sortable并且有效:)

所以我发现HERE使用mousedown和mouseup来取消按钮的方法,但是列表的计数是错误的,例如,我的列表中有4个项目但是当我移动一个时,只有3个重新排序

完整的代码:

$(function() {

        var isDragging = false;
        $("#sortable").mousedown(function() {
            isDragging = false;
        })
        $("#sortable").mousemove(function () {
            isDragging = true;
        })
        $("#sortable").mouseup(function () {
            var order = $("#sortable").sortable('serialize');

            var r = $("#sortable").sortable("toArray");
            var a = $("#sortable").sortable("serialize", {
                attribute: "id"
            });
            console.log(r, a);
            $.ajax({
                data: order,
                type: 'POST',
                url: 'salvar.php', // save.php - file with database update
                success: function (order) {

                },
            });
            var wasDragging = isDragging;
            isDragging = false;
            if (!wasDragging) {
                $("#throbble").toggle();
            }
        });
    });

HTML:

<ul id="sortable">
<li class="ui-state-default" id="item-1">1</li>
<li class="ui-state-default" id="item-2">2</li>
<li class="ui-state-default" id="item-3">3</li>
<li class="ui-state-default" id="item-4">4</li>

运行代码: Running Code

1 个答案:

答案 0 :(得分:0)

只需使用events排序本身提供的。比较容易,然后尝试自己实现:

$('#sortable').on('sortupdate', function() {
    // Send to server
});

Updated fiddle