d3js更新模式;链式不同?

时间:2016-02-04 17:36:15

标签: d3.js

我试图将一堆0/1 svg文本元素连续点击,翻转。

我按照d3js更新模式,点击update()。它没有用 shown here (live code on tributary)

然后我改变了这一行

      t1.enter().append("text").attr("y",205).attr("x",function(d,i)  {return(40+i*80-4)}).text(function(d){return d})

.attr(" fill"," red");

到那个

t1.enter().append("text").attr("y",205).attr("x",function(d,i){return(40+i*80-4)});
t1.text(function(d){return d}).attr("fill", "red");  

现在它有效shown here (live code on tributary)

换句话说,我打破了#34;链接"致电.text(function ...)

但为什么,他们不应该在链中返回相同的对象吗?

1 个答案:

答案 0 :(得分:1)

在第一个代码段中,您要在enter选项上设置文字。在每次额外的update()调用中,没有任何内容进入选择,因此文本不会更新。

在第二个代码段中,您正在较大的update选项上正确设置文字。

注意t1是更新选择。 t1.enter()是输入选择。