d3过渡后调用函数

Yuj*_* Wu 3 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);
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Yuj*_* Wu 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))});
Run Code Online (Sandbox Code Playgroud)