在匿名函数中有声明的变量,当返回该变量时。问题是我似乎无法使用该变量,因为当我尝试返回它时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 - 准备好了。 它似乎正在运作
答案 0 :(得分:2)
错误消息表明您尚未将任何数据绑定到您选择的元素。此外,您可以简化代码:
.attr("r", function(d) { return d[0]; });