【发布时间】:2014-01-03 08:37:55
【问题描述】:
我有几个存储在单独 JSON 文件中的网络(节点 + 链接)。我正在将它们加载到 D3.js 中的强制布局中,并且它们单独加载和布局都很好。但是,我想添加在同一页面上加载任何文件(一次一个)的功能,并在从 JSON 文件加载新网络时重新开始强制布局。
从 JSON 文件加载新网络时,如何重新启动强制布局?我找到的最接近的是http://bl.ocks.org/mbostock/1093130,但这仅适用于单个文件。
奇怪的相关错误?
我还注意到 Force Layout 的一些特殊之处。如果我每 1 秒在 JSON 文件之间快速切换一次,Force Layout 会保持正确布局。如果我在切换之前等待超过几秒钟,那么 Force Layout 似乎会确定第二个网络的最终布局,然后它会从那时起停止布局其余网络。
有关上述内容的更多详细信息:我意识到当 Force Layout 失败时出现意外错误:
Uncaught TypeError: Cannot call method 'call' of undefined
错误似乎是 D3.js 内部的,如下几行:
d3_selectionPrototype.each = function(callback) {
return d3_selection_each(this, function(node, i, j) {
callback.call(node, node.__data__, i, j);
});
};
【问题讨论】:
标签: javascript json d3.js social-networking force-layout