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 に答える