我想从完善的css样式部分和类的使用转移:
<style>
land { fill:grey; }
focus { fill:yellow; }
</style>
svg.
... // some stuff here
.attr("class","focus");
...到纯js变量:
var land = { 'fill':'grey' };
var focus= { 'fill':'yellow'};
我观察到以下内容......
传递2个参数,第二个是函数(1),或者一个参数作为变量(2)完美地运行:
.attr("class", function(d){ if(){...}else{...} }) // (1) works
.attr(land) // (2) works
但是当我将它作为单个参数函数(3)传递时,(1) FAILS 中的这个函数完全相同:
.attr(function(){ return land; }) // fails. Expected to return variable `land`, as for (2).
不知道这是否是一个预期的d3js行为?我做错了什么?而且,可能,如何让它发挥作用。
答案 0 :(得分:0)
从css样式迁移到纯js,如下所示。
你以前的css:
<style>
land { fill:grey; }
focus { fill:yellow; }
</style>
...产生js变量:
var land = "fill:grey" ; // no {}
var focus= "fill:yellow, stroke-color: #F00"; // , or ; should be ok.
...和d3js:
...
.attr("style", function(){return land}) // this is the way, together with no {} !