3

这是我的代码:

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,我发现变换 attr 中的值仍然是 x1, y1 而不是 x2, y2。似乎在转换之前调用了 addTextBackground 。过渡后如何调用它?

谢谢

4

1 回答 1

5

我想到了。使用 each('end',callback) 像:

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))});
于 2012-12-10T05:45:35.500 回答