更改 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
我正在处理此处的示例代码 - 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