为什么我的饼图不会以新尺寸更新?

时间:2013-11-15 18:52:19

标签: javascript d3.js pie-chart

我正在使用此jsfiddle。我期望发生的是,在timeout等待一秒后,它会调用具有新大小的函数buildPieChart()。我想

path.exit()
  .remove();

应该删除旧的饼图和

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

应该把新的饼图放在它的位置。

为什么我的新饼图不显示?

1 个答案:

答案 0 :(得分: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