4

node.setExpanded(true);ツリーを特定のレベルまで拡張するにはどうすればよいですか?

私が言いたいのは、6 つの深度レベルがあり、5 つだけを展開したいということです。最後の 1 つを除外する必要があります。

4

2 に答える 2

5
    $("#treeView").fancytree("getRootNode").visit(function(node){
        if(node.getLevel() < 3) {
            node.setExpanded(true);
        }
    });
于 2016-10-15T12:19:08.923 に答える
2

サンプルデータやコードを提供していないため、これは単なるガイドですが、再帰関数を使用してツリーを反復し、特定の深さに達したときに停止することができます。何かのようなもの:

function expandNode(node, depth) {
    // Expand this node
    node.setExpanded(true);
    // Reduce the depth count
    depth--;
    // If we need to go deeper
    if (depth > 0) {
        for (var i = 0; i < node.children.length; i++) {
            // Go recursive on child nodes
            expandNode(node.children[i], depth);
        }
    }
}

ルートノードと全体的な深さで呼び出します。

expandNode(rootNode, 5);

ファンシーツリーを反復するためのより良い方法があるかもしれませんが、私はファンシーツリーを使用したことがありません

于 2014-10-01T09:09:01.467 に答える