2012-07-06 73 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