Ich erstelle Diagramme über Google Chart Tools auf einer Webseite mit dem Twitter Bootstrap-Framework. Es gibt drei Arten von Diagrammen: Kreis-, Linien- und Säulendiagramme, jeweils in einem einzelnen Register. Die Kartendaten werden über Ajax empfangen.Google Charts und Twitter Bootstrap-Registerkarten
Sofort nach dem Empfang der Daten über Ajax wird das Diagramm angezeigt. Wenn ich jedoch zu einem anderen Tab, d. H. Einem anderen Chart, gehe und zu dem ersten Chart zurückkehre, werden die Labels im Chart falsch ausgerichtet.
Eingeschlossen hierin sind die Bilder, die das Problem zeigen, vor und nach dem Registerkarte Änderung:
Dieses Problem tritt für die Zeile und Spalte zu Charts.
Aber das Problem tritt nicht auf, wenn ich das Fenster ändere und dann zurückkomme, oder wenn ich die Diagramme verstecke und dann wieder zeige. Es tritt nur auf, wenn ich die Tabs ändere.
Die Mark-up für die Registerkarten ist wie folgt:
<div class="charts-div" style="text-align: center">
<ul class="nav nav-tabs">
<li class="active"><a href="#tab-pie" data-toggle="tab">Pie</a></li>
<li><a href="#tab-line" data-toggle="tab">Line</a></li>
<li><a href="#tab-column" data-toggle="tab">Columns</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab-pie">
<div class="chart pie-chart" id="pie-prt"></div>
</div>
<div class="tab-pane" id="tab-line">
<div class="chart line-chart" id="line-prt"></div>
</div>
<div class="tab-pane" id="tab-column">
<div class="chart column-chart" id="column-prt"></div>
</div>
</div>
</div>
Checkten Chrome 22, IE9 und Firefox 12. Das Ergebnis ist das gleiche. Es gibt keinen zusätzlichen Code/Event, der an meinem Ende für Tab-Change- oder Tab-Fokus-Events programmiert wurde.
Heute habe ich das gleiche Problem mohitp beschrieben, aber 'chart.draw()' wieder aufrufen, hat nicht geholfen. Schließlich habe ich das Problem gelöst, indem ich ein Diagramm-Objekt im 'showed' Event-Handler erstellt habe (z. B.' chart = new google.visualization.PieChart (...) '), nachdem die' div'-Dimensionen etwas behoben sind. – shr
Haben Sie alle Argumente übergeben, als Sie 'chart.draw' aufgerufen haben? – Noz
Wie könnte das für ein Beispiel wie folgt funktionieren: http://jsfiddle.net/Khrys/axr7h/? Danke – Khrys