我正在使用此jsfiddle。我期望发生的是,在timeout
等待一秒后,它会调用具有新大小的函数buildPieChart()
。我想
path.exit()
.remove();
应该删除旧的饼图和
path.enter()
.append("path")
应该把新的饼图放在它的位置。
为什么我的新饼图不显示?
答案 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。