我正在使用 d3 并希望将一些变量传递到由 selection.each() 调用运行的函数的范围内。我在一个外部函数中声明变量e
,D
然后在该函数中,在声明我的变量之后,在类的所有内容上运行一个匿名函数.points
。D
我的问题是,如果不使它们成为全局变量,我似乎无法e
进入内部函数的范围。有没有一种简单的方法可以将这些传递给内部函数?
function endSelection(d){
var e = selector.extent();
var D = d;
mainSVG.selectAll(".points")
.each(function(d){
if(d[D.x] >= e[0][0]){
d3.select(this).call(addClass,["foo"])
d3.select(this).call(removeClass,["bar"])
} else {
d3.select(this).call(addClass,["bar"])
d3.select(this).call(removeClass,["foo"])
};
});
}