1
我正在使用这个jsfiddle。我期望发生的是在timeout
等待一秒之后,它以新的尺寸调用功能buildPieChart()
。我想为什么我的饼图不会更新为新的尺寸?
path.exit()
.remove();
应该删除旧的饼图和
path.enter()
.append("path")
应该把新的饼图中它的位置。
为什么我的新饼图不显示?
我正在使用这个jsfiddle。我期望发生的是在timeout
等待一秒之后,它以新的尺寸调用功能buildPieChart()
。我想为什么我的饼图不会更新为新的尺寸?
path.exit()
.remove();
应该删除旧的饼图和
path.enter()
.append("path")
应该把新的饼图中它的位置。
为什么我的新饼图不显示?
在这种情况下,更新时实际上没有.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。
Aww该死的,我也是昨天才知道的。我应该抓住它。万分感谢! – Grammin