希望您能帮助我,因为这让我发疯!
所以我试图使用d3重画svg。在我的代码中,使用以下命令添加svg:
d3.xml("Images/vertical_line.svg", "image/svg+xml", function(xml) {
var importedNode = document.importNode(xml.documentElement, true);
var svg = d3.select('#'+id+'_verticallinecontainer').node().appendChild(importedNode);
});
当我的更新函数被调用时,我然后继续删除该元素:
d3.select("#"+id+'_verticallinecontainer').remove();
这将删除容器和元素。然后,我再次使用上面的代码重新绘制svg。
我的问题是,当它再次追加svg时,它会执行两次,而我不明白为什么!似乎d3以某种方式缓存了svg,然后再次添加了它。
希望您能帮助您找出问题所在,如有任何帮助,我们将不胜感激!
FIDDLE带有添加,删除和再次添加SVG和包含的圆的快速示例。希望这可以帮助。
function update() {
svg.remove();
svg = d3.selectAll("body").append("svg");
svg.append("circle")
.attr("cx",40)
.attr("cy",40)
.attr("r",20)
.style("fill","blue");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句