0

我正在使用 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

this我认为问题是由zoom_in. 任何人都知道如何解决它?

4

1 回答 1

0

找到了这样的方法:

function zoom_in (ts) {
    d3.select(ts)
        .select("text")
        .transition()
        .style("fill",function(d) { return color(d.group);})
        .attr("dx",20)
        .style("font-size","55px");
}

然后

.on("mouseover", function() {if (dragging==0){zoom_in(this)}})
于 2012-08-07T21:14:54.543 回答