【问题标题】:d3 force-directed tree shows NaN when clicking noded3 强制导向树在单击节点时显示 NaN
【发布时间】:2015-09-21 11:41:23
【问题描述】:

当我在本地运行此示例时

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

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

为什么?

这 1200 个错误指向这部分代码:

                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

谢谢。

【问题讨论】:

  • 您是否对示例数据或代码进行了任何更改?
  • 啊...我正在使用队列,也许这搞砸了,让我看看...
  • 是的,不使用队列似乎已经解决了。队列是在我正在使用的模板中自动设置的,因此我将尝试具体了解导致错误的过程的哪一部分。感谢您的灵感 :) 将报告...

标签: javascript d3.js tree force-layout


【解决方案1】:

队列不是问题。 解决方法是忽略最后两个链接造成的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

【讨论】:

  • 那么,你的问题解决了吗?
  • 是的。试图让最后两个链接正常工作是导致问题的原因。删除它们解决了它。但是两天不让回答接受我自己的回答。
猜你喜欢
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多