2012-07-06 41 views
1

从的“结合的二维数据”部分改编:http://christopheviau.com/d3_tutorial/d3.js跳过文本过渡(3个跃迁第二)

dataset = new Array() 
dataset[0] = ['first', 'second', 'third'] 

d3.select("#viz") 
.append("table") 
.style("margin", "0 auto") 
.selectAll("tr") 
.data(dataset) 
.enter() 
.append("tr") 
.selectAll("td") 
.data(function(d){return d;}) 
.enter() 
.append("td") 
.style("border", "1px black solid") 
.style("padding", "10px") 
.text(function(d){return d;}) 
.style('font-size', '18pt') 


.transition().delay(1000) 
.text('nothing') 

.transition() 
.delay(1000) 
.text('test'); 

代码还托管这里:http://jsfiddle.net/LittleBobbyTables/vEfgu/

此跳过阶段的文本应该说“没有”,并直接对它说“测试”。

我做错了什么?

回答

2

在你的例子中,一个接一个地调用转换并不一定会“链接”它们,1000毫秒之后,第一个和第二个转换都是串联执行的 - 所以你看不到第一个的结果。解决这个问题的最简单的方法是改变你的第二个转换的延迟:

.transition().delay(2000) 
+0

谢谢:)我有点头脑里想着d3是如何不是一连串的事件,而是得到处理的标记然后同时输出。 – LittleBobbyTables 2012-07-07 04:28:41