2

我正在使用 jquery 插件嵌套的 Sortable对列表进行重新排序。我想知道如何确定节点插入的父节点和位置。

我的问题是序列化函数总是在我更新它之前返回树的状态。因此,当我将节点 1 从位置 2 移动到位置 3 并随后调用 serialize 时,它​​总是返回它在我移动节点之前所拥有的树的状态。

这是我发现的内置序列化函数和其他一些自定义函数的问题:serialize custom

我在 _mouseStop 函数的末尾调用序列化函数。似乎这样做不是正确的位置......似乎内部 this 持有树的旧状态。因此,问题可能是我怎样才能刷新它..!?

_mouseStop: function(event, noPropagation) {
    ......
    $.ui.sortable.prototype._mouseStop.apply(this, arguments);
    //custom code added
    var ret = this.serialize({startDepthCount: 0});
    console.log(ret);

而当我从绑定到序列化函数的按钮调用序列化函数时,它工作正常。

html 结构类似于教程中使用的结构:

<ol class="sortable">
        <li id="list_1"><div>Item 1</div>
            <ol>
                <li id="list_2"><div>Sub Item 1.1</div>
                <li id="list_3"><div>Sub Item 1.2</div>
            </ol>
        <li id="list_4" class="no-nest"><div>Item 2 (no-nesting)</div>
        <li id="list_5"><div>Item 3</div>
            <ol>
                <li id="list_6" class="no-nest"><div>Sub Item 3.1 (no-nesting)</div>
                <li id="list_7"><div>Sub Item 3.2</div>
                    <ol>
                        <li id="list_8"><div>Sub Item 3.2.1</div>
                    </ol>
            </ol>
        <li id="list_9"><div>Item 4</div>
        <li id="list_10"><div>Item 5</div>
    </ol>
4

1 回答 1

3

jQuery nestedSortable文档说“所有 jQuery Sortable 选项、事件和方法都可用”。如果您查看jQuery UI 可排序文档事件选项卡,您会看到update,我认为这是适合您的事件。

于 2012-07-30T12:51:27.747 回答