无法理解为什么函数会继续在d3.js上调用

时间:2016-05-27 06:17:56

标签: javascript d3.js

在研究以下示例的代码时,我想我几乎得到了所有内容

http://jsfiddle.net/peDzT/

除了我不能在我的生活中看到tick()继续被调用。(意思是,当该函数继续运行时,因此继续更新图形。

tick没有被调用,也没有setinterval或类似的东西。我也不明白.each(" end",tick)的作用。有人可以建议吗?这是使用d3.js

tick();
function tick() {
  // push a new data point onto the back
  data.push(random());
  // redraw the line, and slide it to the left
  path
      .attr("d", line)
      .attr("transform", null)
    .transition()
      .duration(500)
      .ease("linear")
      .attr("transform", "translate(" + x(-1) + ",0)")
      .each("end", tick);
  // pop the old data point off the front
  data.shift();
}

1 个答案:

答案 0 :(得分:2)

你困惑的两件事是相互关联的。 #each用于处理转换事件。一个例子是转换结束后触发的end事件。此代码说“在转换完成后(即触发end事件时),请调用tick。这将开始新的转换,同样的事情将重复,再次调用tick