【发布时间】:2012-07-25 10:24:37
【问题描述】:
从这个例子开始http://bl.ocks.org/1062288 我想要一棵所有节点都折叠的树,所以初始图应该只包含一个节点(根)。
【问题讨论】:
标签: javascript d3.js tree
从这个例子开始http://bl.ocks.org/1062288 我想要一棵所有节点都折叠的树,所以初始图应该只包含一个节点(根)。
【问题讨论】:
标签: javascript d3.js tree
选项 1:修改 JSON
修改 JSON 文件 readme.json,以使用 _children 而不是 children。
选项 2:编辑 Javascript
编辑 javascript 以切换每个节点的 _children 和 children 属性。可以这样做
var nodes = flatten(root);
nodes.forEach(function(d) {
d._children = d.children;
d.children = null;
});
这是第二个选项的JSFiddle。
【讨论】:
_children 已关闭,children 已打开。我想单击一下,甚至可以切换树完全打开/关闭。蒂亚jsfiddle.net/chrisloughnane/vV3Sc
var allnode = flatten(root);
for (var i=0;i<allnode.length;i++){click(allnode[i])}
对于那些仍在寻找它的人,这里有 2 行代码。简洁易懂。
【讨论】:
把它放在这里供未来的读者阅读:
d3.json("json/results.json", function(json) {
root = json;
root.x0 = h / 2;
root.y0 = 0;
function toggleAll(d) {
if (d.children) {
d.children.forEach(toggleAll);
toggle(d);
}
}
root.children.forEach(toggleAll);
toggle(root);
update(root);
});
【讨论】: