私は FusionCharts を使用していますが、これらのチャートを使用する方法は...
- JavaScript では、新しいチャートがインスタンス化されます
- 新しいチャート オブジェクトを作成するには、div ID を指定する必要があります
- 私のページはサーバーからコンテンツを動的に読み込みますが、ユーザーは実際にページを離れることはありません
- フュージョン チャートでは、すでにチャートが含まれている div 内に 2 つ目のチャートを作成することはできません
- そうは言っても、親コンテンツ ページがまだ読み込まれていない場合でも、考えられるすべてのグラフを事前に定義し、ページの読み込み時にインスタンス化する必要があります。
- さらに、これらのチャート「オブジェクト」を作成するには、ID で参照される特定のチャートごとに div 要素が指定されている必要があります。
コード スニペットを次に示します。
var Charts = new Array();
function InitCharts() {
Charts[0] = new FusionCharts("MSColumn3DLineDY.swf", "divChartSSumA1", "340", "340");
Charts[1] = new FusionCharts("MSColumn3DLineDY.swf", "divChartSSumA2", "340", "340");
Charts[2] = new FusionCharts("MSColumn3DLineDY.swf", "divChartSSumA3", "340", "340");
}
上記の問題は、div 要素を事前に作成し、使用していないときに一時的に非表示にし、表示する必要があるときに適切なプレースホルダー内に表示する方法です。ユーザーがグラフの「ページ」間をすばやく切り替えて、各ページがサーバーから動的にロードされ、ページのメイン コンテンツ エリアに「挿入」されるようにしたいと考えています。したがって、特定のチャートのコンテンツがロードされていない場合、チャート オブジェクトはその親 div が存在しないというエラーを発生させます。
具体的には、名前付き div の非表示のリストを維持し、必要に応じて特定の場所に表示するにはどうすればよいでしょうか? 問題は、各要素がそのチャート オブジェクトに完全に対応していることを確認することから始まります。
また、目に見えない div オブジェクトを作成し、その参照をチャートと共にこの配列に格納できたらどうなるか考えています。さらに良いことに、A) Chart オブジェクトと B) div 要素だけを持つ独自のクラスを作成するにはどうすればよいでしょうか。
注意: コンテンツ セクションが変更され、div が消えた場合、コンテンツをクリアして置き換える前に、チャート プレースホルダー div を元の場所に「移動」する必要があります。innerHTML を難しい方法で動かさずにこれを回避するために、どのようなトリックがあるのか わかりません。これらの div 要素がクリアされたときにページのコンテンツとともに削除されることを心配しています (他の動的なページのコンテンツに置き換えられます)。