我刚接触到D3.js &正在尝试向svg颜色更改添加一个转换,但我得到了Uncaught : isFinitDatae不是定义的。
需要更改颜色的svg圆圈设置如下:
var markers = mapContainer.selectAll("circle")
.data(mapLayer2.features)
.enter()
.append("circle")
.attr("cx", function(d){
return projection([d.geometry.coordinates[0],d.geometry.coordinates[1]])[0];
})
.attr("cy", function(d){ return projection([d.geometry.coordinates[0],d.geometry.coordinates[1]])[1]; })
.attr("r", 5)
.style("fill", function(d,i){
if(d.properties.entero_100ml_1 > 35){
return "#ff0000"
} else {
return "#ffcc00"
}
});我有多个按钮,颜色的变化取决于点击哪个按钮。我多次测试了单击所有按钮的情况,并且颜色的更改总是在下面的代码中正常工作:
var updateMarkers = function(enteroString)
{
markers.data(mapLayer2.features)
.style("fill", function(d,i){
var keyArray = d3.keys(d.properties);
var valueArray = d3.values(d.properties);
for (var j = 0; j < keyArray.length; j++){
if(keyArray[j] === enteroString){
if(valueArray[j] > 35){
return "#ff0000";
} else {
return "#ffcc00";
}
}
}
});
}…但是,当我添加转换时,持续时间&轻松转换只在第一次单击按钮时起作用,并引发“未定义的ReferenceError: isFinitDatae”:
var updateMarkers = function(enteroString)
{
markers.data(mapLayer2.features)
.transition()
.duration(500)
.ease("quad")
.style("fill", function(d,i){
var keyArray = d3.keys(d.properties);
var valueArray = d3.values(d.properties);
for (var j = 0; j < keyArray.length; j++){
if(keyArray[j] === enteroString){
if(valueArray[j] > 35){
return "#ff0000";
} else {
return "#ffcc00";
}
}
}
});
}对于如何修复错误有什么想法,因为这是在没有转换的情况下工作的吗?
任何帮助都是非常感谢的,谢谢。
更新:&这里是调用updateMarkers的地方:
chartContainer.selectAll("#xAxis text")
.attr("transform", function(d) {
return "translate(10,0)";
})
.style("cursor", "pointer")
.on("click", function(d,i) {
var num = i + 1;
var numString = num.toString();
var enteroString = "entero_100ml_" + numString;
updateMarkers(enteroString);
});发布于 2014-10-21 01:15:06
"isFinitDatae“是我正在测试的D3版本中的一个错误。在最新的版本中,它是"isFinite",并且转换是有效的。
https://stackoverflow.com/questions/26394120
复制相似问题