0

そこで、さまざまな jQuery UI ウィジェットを利用する Web アプリを構築しています。特に、アコーディオン ウィジェットを使用しています。次のようにアコーディオンを設定するjQueryコードがあります。

$('#graph').accordion({autoHeight:false, collapsible:true});

そこにあるのは、明らかにグラフです。グラフには、Google AnnotatedTimeline ビジュアライゼーションを使用しています。ここで、アコーディオン オプションactiveを false に設定した場合、またはアコーディオンが折りたたまれている場合、グラフを描画しようとすると、探している要素がそこにないことがわかります。divこれは、アコーディオンが折りたたまれたときにグラフを含む内部が「非表示」になるためですか? もしそうなら、どうすればそれを修正できますか?

これが重要な理由は、ユーザーが他の要素を操作しているときにアコーディオンが折りたたまれている可能性があるためです。グラフはリアルタイムで更新することを目的としています。ただし、グラフを描画するために必要な要素さえ見つからない場合は、更新されません。

4

2 に答える 2

0

アコーディオンが実際に含まれているdivの幅と高さを0に設定していることを理解しました。したがって、AnnotatedTimelineを介してアコーディオンにアクセスしようとすると、有効な幅または高さが見つからず、スローしてエラーが発生しました。したがって、私の解決策は、変更コールバック関数を追加して、グラフが選択されたときにグラフを再描画し、更新間隔をリセットすることでした。選択が解除されたら、更新間隔をクリアするだけです。

于 2012-08-09T19:13:11.960 に答える
0

jsfiddleを使用してこの問題を説明/再現できると便利です。

あなたの質問を見ると、要素を id'graph'で定義し、それを jquery ui accordion にしているよう$('#graph').accordion({..})です。グラフを挿入しようとしている要素は何ですか? グラフをレンダリングする前に、グラフを表示する予定の div が存在すると仮定すると、少なくともその点でエラーが発生することはありません。

追加する 2 つ目の関連する注意事項は、注釈付きの時系列グラフ ( docs ) の場合、グラフの幅と高さを明示的に設定する必要があるということです。

于 2012-08-06T08:49:23.187 に答える