如果双击任何固定节点(而不是仅双击一次),如何取消固定已修复的所有节点?
我使用以下方法尝试过暴力方法:
svg.selectAll(".node").classed("fixed", d.fixed = false);
或
svg.selectAll(".node").classed("fixed", d.fixed = false);
这两种方法都会取消双击节点的固定 - 但不会取消其他节点。
答案 0 :(得分:0)
我相信您访问的d
仅在单个案例中设置为false。这是从当前标记为fixed
的所有节点中删除fixed
类的一种方法。
svg.selectAll(".node .fixed").classed("fixed", false);
答案 1 :(得分:0)
经过更多的反复试验后,我发现:
svg.selectAll(".node").classed("fixed", d.fixed = false);
将取消固定双击节点并将所有固定节点恢复为默认颜色,但其余固定节点仍保持固定状态。
force.nodes().forEach(function(d) { d.fixed = false; });
将取消固定所有固定(固定)节点 - 但不会恢复默认颜色。
所以我的策略是使用两者来取消固定所有节点并将所有节点恢复为默认颜色。