定时器结束后,d3转换停止工作

时间:2013-06-17 17:13:55

标签: jquery d3.js

我有一个由d3.timer()控制的动画。 5秒后,我有函数return True来结束计时器并启动后续功能。

但是,当计时器结束时,我无法使用任何d3过渡 - 例如,我无法使SVG淡入淡出,但我仍然可以将它删除。同样,我可以更改文本,但我无法更改样式。

为什么会这样?有办法解决吗?

这是我正在使用的jsFiddle(有问题的过渡在最底层评论):http://jsfiddle.net/Amyunimus/Z59ey/

1 个答案:

答案 0 :(得分:2)

你看到这种行为是因为

endStarted = True;

抛出异常 - 未定义True。如果您使用'True'代替它,它会起作用。请注意,转换是异步的。这意味着您的代码会在转换为黑色之前删除SVG。要解决此问题,请使用

svg.transition().delay(1000).remove();