Sto creando grafici tramite Strumenti grafici di Google, in una pagina Web utilizzando il framework di Bootstrap di Twitter. Sono mostrati tre tipi di grafici: grafici a torta, linee e colonne, ciascuno in una singola scheda. I dati del grafico vengono ricevuti tramite Ajax.Schede di Google Charts e Twitter Bootstrap
Immediatamente dopo aver ricevuto i dati tramite Ajax, il grafico viene visualizzato correttamente. Ma se mi sposto in un'altra scheda, ad esempio un altro grafico, e ritorno al primo, le etichette nel grafico vengono riallineate in modo errato.
incluse in questo documento sono le immagini che mostrano il problema, prima e dopo il cambio scheda:
Questo problema si verifica per la linea e istogrammi troppo.
Ma il problema non si verifica se cambio la finestra e poi torno indietro, o se nascondo e poi rivisita i grafici. Si verifica solo se cambio le schede.
Il mark-up per le schede è come questo:
<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>
Controllato in Chrome 22, IE9 e Firefox 12. Il risultato è lo stesso. Non è stato programmato alcun codice/evento aggiuntivo alla mia estremità per gli eventi di cambio scheda o tabulazione.
Oggi ho ricevuto lo stesso problema descritto da mohitp, ma chiamare di nuovo 'chart.draw()' non ha aiutato. Infine ho risolto il problema creando l'oggetto grafico nel gestore di eventi 'shown' (ad esempio' chart = new google.visualization.PieChart (...) '), dopo che le dimensioni di' div' sono state corrette. – shr
Hai assicurato di passare tutti gli argomenti quando hai chiamato 'chart.draw'? – Noz
Come potrebbe funzionare per un esempio come questo: http://jsfiddle.net/Khrys/axr7h/? Grazie – Khrys