2014-10-09 5 views
1

InfoVis를 사용하여 프로젝트 중 하나에서 공간 트리 시각화를 생성하고 있습니다. 대화 형 웹 사이트이므로 사용자가 환경 설정을 변경할 때마다 공간 트리를 다시 생성해야합니다.
공간 트리를 완전히 지우고 동일한 공간에 새 트리를 다시 그려야합니다. 또한 차트 크기는 페이지 크기가 다를 때 크기가 조정될 수 있습니다. 이를 위해서는 스페이스 트리를 다시 그려야합니다.
이전에 그려진 InfoVis 공간 트리를 제거하는 방법

이전에 그려진 공간 트리를 지우는 동안 새로운 문제가 발생했습니다. 이전 코드를 지우려면 다음 코드 세그먼트를 사용하고 있지만 비참하게 실패합니다.

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

사람이 어떻게 내 진행을 차단으로 좋은 것이이 문제를 해결하려면 나를 인도 할 수 있습니다. 미리 감사드립니다. enter image description here

+0

첨부 된 스크린 샷에서 볼 수 있듯이 이전 인스턴스는 삭제되지 않습니다. 그들은 화면에 계속 남아 있습니다. – Aviro

답변

1


는 다음과 같은 방식으로 해결되었습니다.

InfoVis 차트는 요소를 부모 요소 안에 HTML div 요소로 그립니다. 문제는 데이터 구조를 지운 후에도 div 요소가 생성되어 남아 있기 때문입니다. 그것들은 이전에 첨부 된 이미지들에서 분명하게 보여졌다.

이것은 다음과 같은 방법으로 해결되었습니다.

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

코드 조각은 부모 InfoVis 요소를 추출하고 그것의 모든 생성의 자식 요소를 지 웁니다. 그러면 결국 시각화가 그려지는 캔버스 객체가 지워집니다.

이 문제가 해결되었습니다. 희망이 동일한 문제가있는 사람을 위해 도움이됩니다.