私はfancytreeオブジェクトを非常にシンプルに作成します。説明のためにノードが1つと子どもが4つ、レベルが1つしかなく、lazyLoadは使用しません。クリックされない限り、HTMLは入力されません
実行時のコードでは、ノードをクリックして展開しない限り、子どものhtmlコードはそこにはありません.FancyTreeのlibのjavascript init部分にあります。ノードが開いたり閉じたりすると、childernのhtmlはdifferenct cssクラスがあり、明らかにそれらを表示/非表示にします。
ツリーをロードした後にノードを表示させるように強制することができますが、それらを閉じて、すべての子がすでにHTMLに埋め込まれている必要があります。 私はすべてのノードを解析してそれらを開いて閉じることができると思いますが、より良い解決策があるかどうかは疑問です。私はこの回避策を考え出す瞬間
SOURCE = [
{title: "node 1", folder: true, expanded: true, children: [
{title: "node 1.1", foo: "a"},
{title: "node 1.2", foo: "b"}
]},
{title: "node 2", folder: true, expanded: false, children: [
{title: "node 2.1", foo: "c"},
{title: "node 2.2", foo: "d"}
]}
];
$("#tree").fancytree({
clickFolderMode: 2,
selectMode: 1,
keyboard: false,
source: SOURCE
});
:ここ
簡単な例
まず、私はすべてのノードを開きます。
var tree = $("#tree").fancytree("getTree");
tree.visit(function (node) {
node.setExpanded(true);
});
その後、私はそれらを閉じる:
tree.visit(function (node) {
node.setExpanded(false);
});
コードを入力してください。 – Granny