D3。匿名函数

时间:2015-09-25 10:21:39

标签: javascript d3.js

在匿名函数中有声明的变量,当返回该变量时。问题是我似乎无法使用该变量,因为当我尝试返回它时firebug说:TypeError: myData is undefined

这是我的代码:

select("circle")
    .transition()
    .attr("r", function(d) { 
                var myData = d3.select(this).datum();
                return myData[0];
    } )
    .duration(1000);

return myData[0];确实返回第一个数组元素,但是我的动画花了不到1秒,这意味着.duration(1000);没有被调用,因为{{1}中有一个错误这有点令人费解。

这是我在尝试设置动画之前将数据附加到该圈子的方式:

return myData[0];

为什么 var valuesMatrix = []; valuesMatrix[0] = [35, 21, 45, 71, 51, 32]; d3.selectAll("circle") .data(valuesMatrix); 被视为未声明,即使它返回有效值。

更新。按矩形可查看圆圈动画:

return myData[0];

此代码是jsfiddle - 准备好了。 它似乎正在运作

http://jsfiddle.net/regpast123/axkbLp45/2/

1 个答案:

答案 0 :(得分:2)

错误消息表明您尚未将任何数据绑定到您选择的元素。此外,您可以简化代码:

.attr("r", function(d) { return d[0]; });