1

我的代码在bl.ocks.org上:

在此处输入图像描述

更改选择标签的值以限制圆圈的数量。如果您不经常使用它,它似乎可以工作,但特定情况(例如,为 TE 选择 10,然后选择 247)每次都会崩溃。如果您检查控制台,您会看到有问题的行是nodes = pack.nodes(data);. 我看到两种可能性:要么这是 d3 的包布局的错误,要么我的数据被弄乱了。你能说出这两种情况是否存在吗?如果是,具体问题是什么?

4

1 回答 1

1

您的代码中有一个错误导致子节点重复。由于孩子是重复的,所以包布局中有一个无限循环。

我通过在调试器中设置断点然后在让它卡住一点后暂停代码来发现这一点。果然,它卡在了节点的_pack_next节点本身就是for循环中,导致了无限循环。而且很容易在孩子身上看到重复;例如,e.filter(function(d) { return d.name === "Jermichael Finley"; })返回两个节点,而不是一个。

于 2013-08-18T20:06:08.490 回答