【发布时间】:2013-12-16 23:02:30
【问题描述】:
我怎样才能使 d3.js 强制布局节点已经固定:true 变得不固定?
如果我将它们设置为 d.fixed=false 这不起作用。
我的代码类似于http://bl.ocks.org/norrs/2883411 工作。 所以它在拖动时设置 d.fixed=true。
将 d.fixed 评估为布尔值似乎也不起作用。
但我也希望能够解开节点。
通过拖动或通过其他功能。
我正在尝试这个:
if (d.fixed==false) {
d.fixed=true;
d3.select(this).classed("fixed", true);
}
else
{
d.fixed = false;
d3.select(this).classed("fixed", false);
}
在这个小提琴上可以看到不好的结果:http://jsfiddle.net/2u5KB/2/
谢谢, 加雷斯。
【问题讨论】:
-
将
fixed设置为false应该可以工作。您能否发布一个完整的示例来说明问题? -
更改节点属性后尝试调用 force.resume()。
-
其实你可能需要打电话给force.start()。
-
我只是尝试了一个测试,不需要调用 resume 或开始 unfix 一个节点。小提琴:jsfiddle.net/2u5KB/1(参见 dragend 函数)。将节点的 fixed 属性设置为 false 就足够了。
-
感谢 cmets,我已经更新了我的问题,举例说明我出了什么问题。
标签: d3.js force-layout