【发布时间】:2016-03-17 23:56:21
【问题描述】:
我可以通过鼠标点击突出显示多个节点。我有一个按钮,按下时会删除所有突出显示的节点。现在这工作正常。就在我再次强调它们的时候。
突出显示通过获取刚刚单击的节点的索引来工作。但是删除后索引似乎没有改变。
我找到了这个例子:D3 update on node removal always remove the last entry in SVG DOM
但这似乎并没有解决我的问题:(
基本上我要的是当我删除节点时,如何更新索引?
【问题讨论】:
-
不要使用索引,使用数据。
-
谢谢。它使用数据工作。但问题是,我想使用索引,因为有时我不知道那条数据是否可用。有没有办法给节点一个唯一的值?即使在删除节点并重新运行更新功能(仅设置节点和链接)之后
-
您可以为每个节点生成一个ID。如果没有看到您实际在做什么,就无法真正告诉您更多信息。特别是当你说某条数据可能不可用时,我不清楚你的意思是什么——在这种情况下你仍然想展示一些东西吗?
-
没关系。基本上,我在调用 update() 时给每个节点一个唯一的编号;当我删除一些节点时,我再次调用更新,认为它会用新的“覆盖”原始唯一编号。但它似乎只是保留了旧的。
-
D3 并没有在幕后施展任何魔法——如果你想更新某些东西,你必须明确地去做。
标签: javascript d3.js