我的代码类似于下面的代码:
var dragme = d3.drag()
.on("start", function (d) {
var variable1 = // complex calucaltion result;
})
.on("drag", function (d) {
//do something with variable1 without repeating the complex calculation
})
.on("end", function (d) {
//access variable1 again without repeat calculation
});
如果不将variable1
扩展到drag()的上下文中,如何实现这一目标?
更新:函数调用如下:
d3.select("#container").call(dragme); //#container is a svg group
答案 0 :(得分:2)
你可以这样做:
ImageView
由于你没有数据,这是不太好的方法:
var dragme = d3.drag()
.on("start", function (d) {
var variable1 = d3.select(this).attr("x");
//do some heavy calculation and store in variable
var calculation = 12354;
//store it in the data model.
d.calculation = calculation;
})
.on("drag", function (d) {
//do something with d.calculation
})
.on("end", function (d) {
//do something with d.calculation
});