javascript - d3 力导向树单击节点时显示 NaN

标签 javascript d3.js tree force-layout

当我在本地运行此示例时

http://bl.ocks.org/mbostock/1138500

如果我单击或尝试拖动节点,它就会执行此操作。

enter image description here

为什么?

这 1,200 个错误指向这部分代码:

                node.attr("cx", function(d) { return d.x; })
                    .attr("cy", function(d) { return d.y; });

                link.attr("x1", function(d) { return d.source.x; })
                    .attr("y1", function(d) { return d.source.y; })
                    .attr("x2", function(d) { return d.target.x; })
                    .attr("y2", function(d) { return d.target.y; });

似乎 x 和 y 没有获得正确的数据?

我尝试根据本文中的评论将force.stop()放在几个不同的地方,但到目前为止还没有成功。 NaN on Force-Directed Layout Append in D3.js

谢谢。

最佳答案

队列不是问题。 解决方案是忽略最后两个链接引起的404错误,或者直接删除链接。

问题是,由于 HTML 中有指向三个 JS 文件的链接,我认为需要这些链接。

<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?1.29.1"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.geom.js?1.29.1"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.layout.js?1.29.1"></script>

最后两个有404错误,所以我在网上其他地方查找它们,并从code.google.com复制它们,但仍然不起作用。幸运的是,我刚刚尝试删除链接并且成功了。

显然最后两个链接是不需要的,这就是 404 错误没有破坏它的原因。

然后我找到了这个页面:https://github.com/mbostock/d3/wiki/Upgrading-to-3.0

我没有注意到这是一个四年前的例子,所以旧的链接并没有成为一个问题。我现在发现 1.29.1 是 D3 v1 的指示。

当然,将其切换到当前版本也可以

https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js

关于javascript - d3 力导向树单击节点时显示 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210054/

相关文章:

java - 为什么 addNode() 方法返回编译错误 "The method...in type...is not applicable for the arguments...",以及如何修复它?

javascript - 为什么我需要一个列表折叠来实际解构具有这种树变态的树?

javascript - 操作必须具有类型属性

javascript - d3.j 将径向树与链接(直)树混合

javascript - D3 一次为一个路径系列制作动画

javascript - 链接 D3.js 转换的差异

python - 如何让Python决策树更容易理解?

javascript - 显示来自 fetch 方法的数据

javascript - 设置 maxHeight 和 maxWidth 和 auto 后获取高度和宽度 - 纯 javascript

javascript - "minimum"尺寸以下的 YouTube 播放器