Javascript 如何从d3js中折叠的所有节点开始?
从这个例子开始,我希望有一个所有节点都已折叠的树,因此初始图形应该只包含一个节点(根)。选项1:修改JSON 修改JSON文件Javascript 如何从d3js中折叠的所有节点开始?,javascript,d3.js,tree,Javascript,D3.js,Tree,从这个例子开始,我希望有一个所有节点都已折叠的树,因此初始图形应该只包含一个节点(根)。选项1:修改JSON 修改JSON文件readme.JSON,以使用\u children而不是children 选项2:编辑Javascript 编辑javascript以切换每个节点的\u children和children属性。可以这样做 var nodes = flatten(root); nodes.forEach(function(d) { d._children = d.children;
readme.JSON
,以使用\u children
而不是children
选项2:编辑Javascript
编辑javascript以切换每个节点的\u children
和children
属性。可以这样做
var nodes = flatten(root);
nodes.forEach(function(d) {
d._children = d.children;
d.children = null;
});
下面是第二个选项的示例。将此内容放在这里,以供将来的读者阅读:
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);
});
var allnode=flatte(根);
对于(var i=0;iBrant您知道导航所有节点并将其设置为打开的方法吗?您的回答告诉我,\u children
是关闭的,而children
是打开的。我希望只需单击一次,即可将树完全打开/关闭。tia hey@BrantOlsen我有一个问题。我不希望所有节点都在一个json中。我我宁愿先加载一个根目录,然后当我单击时加载另一个json,然后以某种方式创建与其父目录的链接。你能告诉我怎么做吗?Thanks@user414209你应该把它放到一个新的问题中,这样大家都能看到它。@BrantOlsen我尝试了选项1,得到了一些奇怪的结果,源节点消失了,但选项2起了作用很好。我更新了你的提琴来修复断开的链接:很好的添加-我在这个很棒的示例代码库中使用了它-以获得理想的效果,开始完全折叠而不是完全扩展,这对我来说是压倒性的-我宁愿探索树并最终到达那里。
var allnode = flatten(root);
for (var i=0;i<allnode.length;i++){click(allnode[i])}