简体   繁体   中英

How can I start with all the nodes collapsed in d3js?

从这个示例http://bl.ocks.org/1062288开始,我希望有一个树,所有节点都已折叠,因此初始图应该只包含一个节点(根)。

Option 1: Modify the JSON

Modify the JSON file, readme.json , to use _children instead of children .

Option 2: Edit the Javascript

Edit the javascript to switch the _children and children attributes for every node. This could be done like so

var nodes = flatten(root);
nodes.forEach(function(d) {
  d._children = d.children;
  d.children = null;
});

Here is a JSFiddle for the second option.

var allnode =  flatten(root);
for (var i=0;i<allnode.length;i++){click(allnode[i])}

for those still looking for it, here is 2 lines of code. compact and easy to understand.

Put this here for future readers:

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

http://jsfiddle.net/chrisloughnane/vV3Sc/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM