更改d3.js节点的填充颜色

时间:2015-12-14 00:41:24

标签: javascript d3.js visualization

我正在使用示例代码 - http://bl.ocks.org/cjrd/6863459创建有向图并在线播放。代码已经有一个名为

的函数
GraphCreator.prototype.changeTextOfNode

此功能在节点上放置可编辑文本,以便用户可以更改该值,并在用户在按住Shift键的同时单击节点时调用该值。现在,我想做一些非常相似的事情。我希望在按住Ctrl键的同时单击节点时更改节点的颜色。为此,我提出的功能是 -

GraphCreator.prototype.changeColorOfNode = function(d3node, d){
  try{
      d3node.style("fill","red");
    }
    catch(e){
      alert(e.message);
    }
}

现在,我总是将颜色更改为红色,只是为了检查这是否有效。我看到的是,代替节点更改的圆圈的填充颜色,圆圈中文本的字体颜色变为红色。有没有人知道我将如何改变填充颜色?

1 个答案:

答案 0 :(得分:2)

目前,您正在将填充样式应用于g元素而不是圆形。这就是为什么只有文字颜色改变的原因。您应该尝试如下所示。

d3node.select("circle").style("fill","red");

查找节点的现有颜色

d3node.select("circle").style("fill"); //returns current fill color applied