1

jsTree の CRRM プラグインのドキュメントには、copy() メソッドが「ノードをコピーする (貼り付けの準備をする) 」と記載されており、 「ツリー内の要素を指す DOM ノード、jQuery ノード、またはセレクターのいずれかである可能性があるパラメーターを受け取る」と記載されています。 . これはすべて特異です。

paste() の場合、「ノード内にコピーまたはカットされたノードを貼り付けます」と表示されます。複数のノードの貼り付けをサポートしていることを意味します。

ただし、複数のノードをコピーする方法がわかりません。出来ますか?もしそうなら、copy() メソッドに何を渡す必要がありますか?

私はチェックボックスプラグインを使用していることに言及する必要があり、コピー用のノード選択はそれらを使用して行われます。現在、チェック済みのノードを取得するために get_checked() メソッドを呼び出しています。この呼び出しの結果を copy() に渡すことはできません。私がやっていることは、get_checked() の結果をループし、各ノードの ID を取得してから、それぞれに対して copy() と paste() を呼び出すことです。

問題は、「move.jstree」イベント (貼り付け時に発生) のハンドラーが、サーバー側の更新を行うために ajax 呼び出しを行うことです。10 個のノードを貼り付けると、ばかげた 10 個の ajax 呼び出しが発生します。複数のノードの貼り付けを処理する 1 つの ajax 呼び出しを実行したいと考えています。それは可能でなければなりませんよね?

ご指摘ありがとうございます。

4

1 に答える 1

4

私自身の質問に答えます。

私がする必要があったのは、ノード ID をセレクター文字列に連結して呼び出すことだけでした...

$('jstreediv').jstree('copy', '#node1, #node2, #mode3');

...複数のノードをコピーし、paste を呼び出すだけでそれらをすべて貼り付けることができます...

$('jstreediv').jstree('paste', '#id-of-target-folder');

したがって、それは実際には単なるドキュメントの問題でした。

于 2013-04-18T12:55:41.817 に答える