2013-11-15 122 views
1

我正在使用這個jsfiddle。我期望發生的是在timeout等待一秒之後,它以新的尺寸調用功能buildPieChart()。我想爲什麼我的餅圖不會更新爲新的尺寸?

path.exit() 
    .remove(); 

應該刪除舊的餅圖和

path.enter() 
    .append("path") 

應該把新的餅圖中它的位置。

爲什麼我的新餅圖不顯示?

回答

2

在這種情況下,更新時實際上沒有.enter().exit()選擇 - 所有數據元素都與DOM元素相匹配,因爲您不在數據中添加或刪除任何元素。

所以你所需要做的就是處理更新選擇。在D3的最新版本中,在添加元素後,將.enter()選擇添加到更新選擇中,以便可以利用該選項使代碼更加簡潔。所有你需要改變的是這個。

path.enter() 
.append("path") 
.attr("fill", function(d, i){ 
// etc 

path.enter() 
.append("path"); 
path 
.attr("fill", function(d, i){ 
//etc 

完整示例here

+0

Aww該死的,我也是昨天才知道的。我應該抓住它。萬分感謝! – Grammin

相關問題