Javascript jqueryui可排序’;s serialize方法排除一项

Javascript jqueryui可排序’;s serialize方法排除一项,javascript,jquery,jquery-ui,serialization,jquery-ui-sortable,Javascript,Jquery,Jquery Ui,Serialization,Jquery Ui Sortable,我正在使用jqueryuisortable获取页面上的元素列表,每次更改元素的顺序时,我都要将其保存在数据库中 然而,我遇到了一个奇怪的bug(在我看来,它就像一个bug):无论是serialize还是toArray方法都总是从生成的序列化字符串(或数组)中排除一个项。始终是当前正在拖动的项。这意味着订单从未被正确跟踪 下面是我的javascript示例: $('.setContent').sortable({change: function(event, ui) {

我正在使用jqueryui
sortable
获取页面上的元素列表,每次更改元素的顺序时,我都要将其保存在数据库中

然而,我遇到了一个奇怪的bug(在我看来,它就像一个bug):无论是
serialize
还是
toArray
方法都总是从生成的序列化字符串(或数组)中排除一个项。始终是当前正在拖动的项。这意味着订单从未被正确跟踪

下面是我的javascript示例:

$('.setContent').sortable({change:

    function(event, ui) {

        // Serialise the new order
        var newOrder = $('.setContent').sortable('serialize');

        // Add the current set id and the action name
        newOrder += '&setId='+currentSet+'&action=usrStuff:changeCardsOrder';

        // Send the data to the server
        $.post('ajax.php', newOrder);

   }

});
以及HTML:

<div class="setContent>
    <div class="cardSmall" id="card_5">
        <div class="hanzi">俄国</div>
        <div class="meaning">Russia</div>
    </div>
    <div class="cardSmall" id="card_4">
        <div class="hanzi">韩国</div>
        <div class="meaning">Korea</div>
    </div>
    <div class="cardSmall" id="card_6">
        <div class="hanzi">中国</div>
        <div class="meaning">China</div>
    </div>
    <div class="cardSmall" id="card_12">
        <div class="hanzi">日本</div>
        <div class="meaning">Japan</div>
    </div>
    <div class="cardSmall" id="card_13">
        <div class="hanzi">德国</div>
        <div class="meaning">Germany</div>
    </div>
    <div class="cardSmall" id="card_17">
        <div class="hanzi">巴西</div>
        <div class="meaning">Brasil</div>
    </div>
    <div class="cardSmall" id="card_14">
        <div class="hanzi">法国</div>
        <div class="meaning">France</div>
    </div>
    <div class="cardSmall" id="card_19">
        <div class="hanzi">美国</div>
        <div class="meaning">America</div>
    </div>
    <div class="cardSmall" id="card_16">
        <div class="hanzi">英国</div>
        <div class="meaning">England</div>
    </div>
</div>

您可能想要的是
更新
事件,而不是
更改
事件


change
在排序过程中,只要DOM中的项的顺序发生变化,即使用户没有放弃正在移动的项,也会触发该命令<代码>更新
在用户更改可排序元素的顺序后激发。

当然!非常感谢,我错过了这样的事情真是太愚蠢了。感谢这一点,我还假设这是正确的事件,因为docs声明“此事件是在排序期间触发的,但只有在DOM位置发生更改时才会触发。”如果DOM位置发生更改,那么我将不得不假设正在拖动的元素必须是可排序的一部分。