.delay()不是d3中的函数

时间:2015-12-21 19:27:20

标签: javascript d3.js

到目前为止,我导入的唯一库是d3,我检查了d3.js文件以确保函数在那里。它是。

我试图用D3和AngularJS书中的数据可视化来做这个例子。这是代码[直接来自书籍,删除了评论]:

<svg width="800" height="500"></svg>
<script type="text/javascript">
var data = [];
setInterval(function(){
    if (data.length < 8) {
        data.push(Math.random());
    }
    else {
        data = [];
    }
    draw();
}, 1000);

function draw() {
    var svg = d3.select('svg');

    var circles = svg.selectAll('circle').data(data);

    circles
    .attr('fill', 'orange');

    circles.enter()
    .append('circle')
    .attr('fill', 'red')
    .attr('r', 40)
    .attr('cx', function(d, i) { return i*100 + 50; })
    .attr('cy', 50);

    circles
    .style('stroke', 'black');

    circles.exit()
    .delay()
    .remove();
}

具体问题是

circles
.exit()
.delay()
.remove();

它说延迟功能&#34;不是功能&#34;即使它是。我尝试将完全从书中移植的代码转换为一个全新的项目,但它并不起作用。 (如果有所不同,我会使用Chrome浏览器。)

由于

1 个答案:

答案 0 :(得分:3)

delay()不是selections的函数。但是,您可以调用delay()进行转换。所以:

circles
  .exit()
  .transition()
  .delay()
  .remove();