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

Change fill color of d3.js node

我正在处理此处的示例代码 - 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);
    }
}

目前,我总是将颜色更改为红色,只是为了检查是否有效。我看到的是,代表节点的圆圈的填充颜色没有发生变化,圆圈中文本的字体颜色变为红色。有谁知道我将如何更改填充颜色?

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

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

查找节点的现有颜色

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