Javascript 所有转换完成后的转换函数链接

Javascript 所有转换完成后的转换函数链接,javascript,d3.js,Javascript,D3.js,我正在将一个圆展开成一行,我这样做的方式(对其他函数也是开放的)是在每个状态上循环并调用.transition()…,如下所示: function all() { for(i=0; i<numberOfPoints; i++){ circle.data([circleStates[i]]) .transition() .delay(dur*i) .duration(dur)

我正在将一个圆展开成一行,我这样做的方式(对其他函数也是开放的)是在每个状态上循环并调用
.transition()…
,如下所示:

function all() {
   for(i=0; i<numberOfPoints; i++){
        circle.data([circleStates[i]])
            .transition()
            .delay(dur*i)
            .duration(dur)
            .ease("linear")
            .attr('d', pathFunction)
            .each('end', firstAFterUnroll()); //is this the correct function?
    }
}
function all(){

对于(i=0;i如果您只需要调用此函数一次,并且您确切地知道转换何时完成,那么您可以在该时间之后使用
setTimeout
调用它。链接转换就是为了实现这一点,而不是真正地调用单个函数一次

要在这之后调用任何其他函数,只需从第一个函数调用它们


或者,您可以在回答中执行类似的操作,以确保函数只被调用一次。

我不确定是否理解您的问题。您希望与它在小提琴中的工作方式有什么不同?抱歉,没有详细说明。
firstAfterUnroll()
应该在行展开后(即for循环完成执行后)调用一次。我将在
firstAfterUnroll()之后链接另一个函数(
secondAfterUnroll()
也是,因此理解如何构造它会很有帮助。好的,所以我在搜索中看到了下划线示例,但计时仍处于关闭状态。我是否可以/应该重新构造动画以在每个状态之间进行链接,以便链接其他功能,或者设置超时是一种确定的方法?(点数是动态的)我想我会知道不同主要转换之间的固定时间,因此我认为我可以按照您的建议使用
setTimeout
依赖静态定义,但我也在尝试学习正确的结构,并尽可能多地利用d3的“正确”谢谢你的帮助和建议。另外,你有捐款页面或愿望列表吗?你在这个网站上帮了我很多,我想说谢谢。你对我的编程有着积极的影响,特别是我在这个网站上的经验,因为我在“学习”如何在这个网站上提问时经历了一段艰难的时光,g我知道我真正编程的时间只有9个月。我的链接转换和设置持续时间在功能上是等效的。因为你依赖于显式设置数据,链接转换需要一些重构,以便每个元素都可以使用数据。不过你可以称它为D3。还有非常感谢你的表扬——我没有什么愿望清单之类的东西,我很高兴能在这里免费提供帮助。很高兴听到大家这么说:)如果你决定要一份愿望清单,请告诉我:)