将树展开到特定级别

时间:2014-10-01 08:47:09

标签: jquery fancytree

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

我的意思是我有6个深度级别,只想要扩展5个 - 最后一个应该被排除。

2 个答案:

答案 0 :(得分:2)

    $("#treeView").fancytree("getRootNode").visit(function(node){
        if(node.getLevel() < 3) {
            node.setExpanded(true);
        }
    });

答案 1 :(得分:1)

这只是一个指南,因为您没有提供示例数据或代码,但您可以使用递归函数来迭代树,在达到特定深度时停止。类似的东西:

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

可能有更好的方法来迭代一个fancytree,但我还没有使用过fancytree