0

我有一个由d3.timer(). 5 秒后,我让函数返回True以结束计时器并启动后续函数。

但是,当计时器结束时,我无法使用任何 d3 转换 - 例如,我无法使 SVG 淡入黑色,但我仍然可以将其删除。同样,我可以更改文本,但不能更改样式。

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

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

4

1 回答 1

2

您看到这种行为是因为

endStarted = True;

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

svg.transition().delay(1000).remove();
于 2013-06-17T17:22:39.533 回答