バックグラウンド
Django アプリをブートストラップ 3 にアップグレードすることにしました。アコーディオンをパネルに変更した後、以前は機能していた Jqplot が機能しなくなっていることがわかりました。グループとして 3 つのアコーディオンがあり、それぞれに Jqplot スクリプトと、プロットを表示する必要がある div が含まれています。
これは、スケルトンがどのように見えるかです:
<div class="panel-group" id="accordion2">
<div class="panel panel-default">
<div class="panel-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
First Heading
</a>
<script>
$(document).ready(function(){
// generic jqplot barchart that goes like this...
// var plot1 = $.jqplot('chartdiv', s1, {...
});
</script>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
<div id="chartdiv"></div>
</div>
</div>
</div>
他の 2 つの div についても同じことがpanel panel-default
言えます。(同じ方法でさらに 2 つのプロットを書きます。)
問題
それはこの行にあります:
<div id="collapseOne" class="panel-collapse collapse in">
でパネルを折りたたむと、期待どおりに折りたたまれますが、内部で呼び出されてclass="panel-collapse collapse"
もプロットは生成されません。document.ready()
しかし、私がそれを持っているとclass="panel-collapse collapse in"
、パネルは折りたたまれず、プロットも生成されます。
質問
デフォルトで最初のパネルを折りたたまず、他の 2 つのパネルを折りたたむ必要がありますが、上記のクラスを使用してそうすると、2 番目と 3 番目のプロットが生成されません (具体的には、Jqplot キャンバスが生成されません)。
これは、古いバージョンを使用していた古いアプリで動作していたため、Bootstrap 3 とそのアコーディオンへの変更と関係があるに違いないと思います。
どうすればこの問題を乗り越えることができますか?