如何删除以前绘制的InfoVis空间树

时间:2014-10-09 05:44:21

标签: javascript angularjs infovis thejit space-tree

我正在使用InfoVis在我的一个项目中生成空间树可视化。由于这是一个交互式网站,因此每次用户更改首选项时都需要重新生成空间树。
这需要完全清除空间树并在同一空间上重新绘制新树。此外,随着页面大小的变化,可以调整图表区域的大小。这需要重新绘制空间树。

我在尝试清除之前绘制的空间树之前遇到了几个问题,然后再绘制新的空间树。我使用以下代码段来清除上一张图,但它失败了。

st.clearNodesInPath();
st.labels.clearLabels(true);
st.canvas.clear();

如果有人可以指导我如何解决这个问题,那会很好,因为这阻碍了我的进步。在此先感谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

这是以下列方式解决的。

InfoVis图表将其元素作为父元素内的HTML div元素绘制。问题是由于即使在清理数据结构之后剩余的那些生成的div元素也是如此。这些在以前附图中清楚地显示出来。

这是以下列方式解决的。

var list = document.getElementById("idOfParentElement");
list.removeChild(list.childNodes[0]);

代码片段提取父InfoVis元素并清除它生成的所有子元素。这将最终清除将绘制可视化的画布对象。

这解决了我的问题。希望这对任何遇到同样问题的人都有帮助。