【发布时间】:2016-10-17 07:00:13
【问题描述】:
如何使用node.setExpanded(true); 仅将树扩展至特定级别?
我的意思是我有 6 个深度级别,只希望扩展 5 个——最后一个应该被排除在外。
【问题讨论】:
-
一个传递剩余级别计数的递归函数可以,但您确实需要显示您尝试过的代码:)
如何使用node.setExpanded(true); 仅将树扩展至特定级别?
我的意思是我有 6 个深度级别,只希望扩展 5 个——最后一个应该被排除在外。
【问题讨论】:
$("#treeView").fancytree("getRootNode").visit(function(node){
if(node.getLevel() < 3) {
node.setExpanded(true);
}
});
【讨论】:
这只是一个指南,因为您没有提供示例数据或代码,但您可以使用递归函数来迭代树,当达到特定深度时停止。比如:
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
【讨论】:
node.visit(...)和if( node.getLevel() < 6)...
fancytree 特定的东西。你为什么不发布答案?