d3过渡后调用函数

时间:2012-12-10 05:39:30

标签: javascript d3.js

这是我的代码:

var text = container.append('text');
text.text('text')
          .attr('transform',function(){
            return "translate(" + x1 + "," + y1 + ")"
          })
          .transition()
          .attr('transform',function(){
            return "translate(" + x2 + "," + y2 + ")";
          });
 addTextBackground(text);

将文本传递给函数addTextBackground,我发现transform attr中的值仍然是x1,y1而不是x2,y2。 似乎在转换之前调用了addTextBackground。如何在过渡后调用它?

由于

1 个答案:

答案 0 :(得分:5)

我明白了。使用每个('结束',回调),如:

text.text('text')
          .attr('transform',function(){
            return "translate(" + x1 + "," + y1 + ")"
          })
          .transition()
          .attr('transform',function(){
            return "translate(" + x2 + "," + y2 + ")";
          })
          .each('end',function(){addTextBackground(d3.select(this))});