1

jstree インスタンス (つまり、不明なレベルの子を持つノード) にブランチを追加する方法。

// example of a branch (with one level)
var branch = {
    "data":"Folder 1",
    "attr":{"rel":"Layer","elt":1},
    "state":"closed",
    "children":[
        {
            "data":"Item 4",
            "attr":{"rel":"File 1","elt":2},
            "state":"",
            "children":null
        }
    ]
};

そして、このブランチを jstree インスタンスに追加するには:

// -1 means root
$.jstree._reference('#tree').create_node(-1, 'last', branch, false, false);

しかし、それは失敗します! 子は作成されません。

4

1 に答える 1

1

私の解決策は、すべてのノードを手動で再帰的に作成することです:

function LoadElement(node, branch) {
    data = {
        data: branch.name,
        attr: branch.attr,
        state: branch.state
    };
    var node = $.jstree._reference('#tree').create_node(
        node, 'last', data, false, false
    );
    if (typeof branch.children === 'undefined') return false;
    for (var i=0; i<branch.children.length; i++) {
        LoadElement(node, branch.children[i]);
    }
}

// -1 means root
LoadElement(-1, branch);
于 2013-02-06T15:08:03.510 に答える