D3.js中的可折叠树

时间:2016-05-20 14:55:44

标签: javascript html d3.js

我正在学习D3.js并且稍微玩弄它。目前我在一棵树上工作,这是非常好的,很容易静态完成。

因为我试图避免从已经存在的示例中“复制粘贴”,并尝试阅读文档,...好吧,我面临很多“问题”,我似乎无法忍受解决这个问题。

Here's a fiddle一个简单的小型可折叠树。链接还没有崩溃。那将是下一步,现在不相关。

根节点上的折叠按预期工作。所有子节点都消失了。但是当点击一个只有一个孩子的中间节点时,它总是同一个孩子消失了......我不明白为什么。

Click以点击的节点作为参数调用click。在click内,toggleChildren被调用,点击的节点再次作为参数。并且toggleChildren存储旧状态并将子项设置为null ...在点击的节点上...这至少是我的想法; - )

1 个答案:

答案 0 :(得分:1)

当你定义:

var node = baseSvg.selectAll(".node")
        .data(nodes);

data

中缺少此内容
        .data(nodes, function(d) { return d.id || (d.id = ++i); });

当然,之前要写var i = 0;

这是小提琴:https://fiddle.jshell.net/8ua280wy/

相关问题