1

プロジェクトの 1 つで空間ツリーの視覚化を生成するために InfoVis を使用しています。これはインタラクティブな Web サイトであるため、ユーザーが設定を変更するたびに、スペース ツリーを再生成する必要があります。
これには、スペース ツリーを完全にクリアし、同じスペースに新しいツリーを再描画する必要があります。さらに、ページ サイズの変化に合わせてチャート領域のサイズを変更できます。これには、スペース ツリーの再描画が必要です。

新しいスペース ツリーを描画する前に、以前に描画したスペース ツリーをクリアしようとしたときに、いくつかの問題に遭遇しました。次のコード セグメントを使用して前の描画をクリアしていますが、うまくいきません。

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

これが私の進歩を妨げているので、誰かがこれを解決する方法を教えてくれるなら、それは素晴らしいことです. 前もって感謝します。

ここに画像の説明を入力

4

1 に答える 1

1

これは、次の方法で解決されました。

InfoVis チャートは、要素を親要素内の HTML div 要素として描画します。この問題は、データ構造をクリアした後でも、生成された div 要素が残っていることが原因でした。それらは、以前に添付された画像に明確に示されていました。

これは、次の方法で解決されました。

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

コード フラグメントは、親の InfoVis 要素を抽出し、生成されたすべての子要素をクリアします。これにより、視覚化が描画されるキャンバス オブジェクトが最終的にクリアされます。

これで私の問題は解決しました。これが同じ問題を抱えている人の助けになることを願っています。

于 2014-10-22T01:49:49.720 に答える