2013-11-15 62 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

相关问题