我正在学习D3.js并且稍微玩弄它。目前我在一棵树上工作,这是非常好的,很容易静态完成。
因为我试图避免从已经存在的示例中“复制粘贴”,并尝试阅读文档,...好吧,我面临很多“问题”,我似乎无法忍受解决这个问题。
Here's a fiddle一个简单的小型可折叠树。链接还没有崩溃。那将是下一步,现在不相关。
根节点上的折叠按预期工作。所有子节点都消失了。但是当点击一个只有一个孩子的中间节点时,它总是同一个孩子消失了......我不明白为什么。
Click
以点击的节点作为参数调用click
。在click
内,toggleChildren
被调用,点击的节点再次作为参数。并且toggleChildren
存储旧状态并将子项设置为null
...在点击的节点上...这至少是我的想法; - )
答案 0 :(得分:1)
当你定义:
var node = baseSvg.selectAll(".node")
.data(nodes);
data
.data(nodes, function(d) { return d.id || (d.id = ++i); });
当然,之前要写var i = 0;
。