首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D3跃迁isFinitDatae误差

D3跃迁isFinitDatae误差
EN

Stack Overflow用户
提问于 2014-10-15 23:59:02
回答 1查看 52关注 0票数 0

我刚接触到D3.js &正在尝试向svg颜色更改添加一个转换,但我得到了Uncaught : isFinitDatae不是定义的

需要更改颜色的svg圆圈设置如下:

代码语言:javascript
复制
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"
                        }
                    });

我有多个按钮,颜色的变化取决于点击哪个按钮。我多次测试了单击所有按钮的情况,并且颜色的更改总是在下面的代码中正常工作:

代码语言:javascript
复制
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”:

代码语言:javascript
复制
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的地方:

代码语言:javascript
复制
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);
        });
EN

回答 1

Stack Overflow用户

发布于 2014-10-21 01:15:06

"isFinitDatae“是我正在测试的D3版本中的一个错误。在最新的版本中,它是"isFinite",并且转换是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26394120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档