2

jqueryアドインのネストされたSortableを使用して、リストを再ソートしています。ノードが挿入された親と位置をどのように判断できるのか疑問に思っていました。

私の問題は、シリアル化関数が、更新前のツリーのステータスを常に返すことです。したがって、ノード 1 を位置 2 から位置 3 に移動し、その後 serialize を呼び出すと、ノードを移動する前のツリーの状態が常に返されます。

これは、組み込みのシリアル化関数と、私が見つけた他のカスタム関数の問題です: serialize custom

_mouseStop 関数の最後で serialize 関数を呼び出しています。これを行うのは正しい位置ではないようです... 内側はツリーの古い状態を保持しているようです。したがって、問題はおそらくどうすれば更新できるかということです..!?

_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 の sortable doc events タブを見ると、 updateが表示されます。これはあなたにとって適切なイベントだと思います。

于 2012-07-30T12:51:27.747 に答える