2013-02-06 31 views
1

如何在jstree實例(即具有未知級別的兒童節點的節點)中添加分支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); 

但它失敗!孩子沒有創造。

回答

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);