我正在使用InfoVis在我的一个项目中生成空间树可视化。由于这是一个交互式网站,因此每次用户更改首选项时都需要重新生成空间树。
这需要完全清除空间树并在同一空间上重新绘制新树。此外,随着页面大小的变化,可以调整图表区域的大小。这需要重新绘制空间树。
我在尝试清除之前绘制的空间树之前遇到了几个问题,然后再绘制新的空间树。我使用以下代码段来清除上一张图,但它失败了。
st.clearNodesInPath();
st.labels.clearLabels(true);
st.canvas.clear();
如果有人可以指导我如何解决这个问题,那会很好,因为这阻碍了我的进步。在此先感谢。
答案 0 :(得分:1)
这是以下列方式解决的。
InfoVis图表将其元素作为父元素内的HTML div元素绘制。问题是由于即使在清理数据结构之后剩余的那些生成的div元素也是如此。这些在以前附图中清楚地显示出来。
这是以下列方式解决的。
var list = document.getElementById("idOfParentElement");
list.removeChild(list.childNodes[0]);
代码片段提取父InfoVis元素并清除它生成的所有子元素。这将最终清除将绘制可视化的画布对象。
这解决了我的问题。希望这对任何遇到同样问题的人都有帮助。