4

如何使用node.setExpanded(true);将树仅扩展到某个级别?

我的意思是我有 6 个深度级别,只希望扩展 5 个——应该排除最后一个。

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 回答