【发布时间】:2012-08-06 23:15:47
【问题描述】:
我正在使用 d3.js,我发现这是可行的:
function zoom_in () {
d3.select(this)
.select("text")
.style("font-size","55px");
}
var node = svg.selectAll("g.node")
.data(json.nodes, function(d) { return d.name;})
.enter().append("g")
.on("mouseover", zoom_in);
但这行不通:
function zoom_in () {
d3.select(this)
.select("text")
.style("font-size","55px");
}
var already_done = 0;
var node = svg.selectAll("g.node")
.data(json.nodes, function(d) { return d.name;})
.enter().append("g")
.on("mouseover", function() {zoom_in();already_done=1;})
但是,我想在调用zoom_in 函数后做一些事情。
我不想写另一个函数zoom_in_already_done。
我认为问题是由zoom_in 中的this 变量引起的。谁知道怎么解决?
【问题讨论】:
-
既然
already_done是一个全局变量,你能把already_done = 1;移到zoom_in()函数中吗?
标签: javascript scope d3.js