3

jsTree を使用して、インタラクティブ ツリーのようなデータベース階層カテゴリを表示しています。初期ロードは JSON で行われ、デフォルトでいくつかのカテゴリがチェックされます。jsTree は、チェックされている (チェックボックス プラグインを使用している) と表示されるため、どのカテゴリが選択されているかを認識していますが、ツリーのロード時にそのチェックされたノード (およびそのすべての親) を開くことができるようにしたいと考えています。

ユーザーがツリーのあるページを開いたときに、ツリー全体を展開せずに選択されたカテゴリがあることに気付かず、チェックされているノードのみを展開したいため、これが必要です。

これまでの私のコードは次のとおりです。

var tree = $('.tree').bind('loaded.jstree', function (e, data) {

              // I assume that logic that expand checked nodes must be placed here, after tree is loaded

    })
    .jstree({
        // Configure JSON data plugin
        'json_data': {
            'data': [<this is initial json data>]
        },

        'checkbox': {
            'override_ui': true,
            'two_state': true,
            'real_checkboxes': true
        },

        // Specify which plugins to load
        'plugins': ['themes', 'json_data', 'ui', 'checkbox']
    });

ありがとう!

4

2 に答える 2

1

状態プラグインを確認する必要があります。チェックしたノードを開くには、状態を設定する必要があります。

プラグイン配列に「state」を追加します。ツリーの json で、各ノードのデータの後に、次のようにオブジェクトを追加します。 state: { open : true }

于 2014-05-21T20:50:00.087 に答える
0

状態プラグインは必要ないと思います。ツリーの状態を保存し、次に遭遇したときにその状態にツリーを再度開きます。

ただし、重要なのは、ノードのデータをstate: { open : true }に設定すると、ノードが表示された後にそのノードが開かれることです。

于 2015-01-30T21:39:52.350 に答える