簡體   English   中英

使動態生成的Google圖表具有響應能力

[英]Make dynamically generated Google Charts Responsive

我按照以下示例使用以下代碼使Google圖表具有響應能力:

$(document).ready( function () {
    //Make Chart(s) Responsive
    $(window).resize(function(){
        drawVisualization();
    });

這在我的html原型中效果很好,但是現在我正在使用PHP生成圖表。 作為示例,我可能必須生成n個圖表,以便遍歷PHP中的一組數據以生成圖表將駐留的DIV,JSON數據等等。

我的DIV生成為唯一,例如:

<div id="visualization_**identifier**" style="height:200px;">

然后,我為每個圖表創建一個函數來處理render.drawing,如果需要,我可以對其進行唯一的命名:

function drawVisualization_**identifier**()

一切正常,但是jQuery代碼要求我drawVisualization_**identifier**()調用每個drawVisualization_**identifier**()來刷新圖表,有沒有辦法動態創建列表並刷新它們?

我假設我可以在我的vizualization div中添加一個類,並使用典型的jQuery代碼查詢它們(盡管我不確定如何做到)-如果可以做到,我可以操縱它來調用每個drawVisualization_**identifier**()函數執行刷新?

類似於(大致)的東西:

$(document).ready( function () {
    //Make Chart(s) Responsive
    $(window).resize(function(){
        foreach(get visualization div names){
            refreshVizualization('vizualization'+vizDivName);
        }
    });

任何幫助將不勝感激,盡管我覺得我正在使用jQuery和圖表,但這使我頭疼。 似乎奇怪的是,與Google圖表一樣出色的功能似乎沒有“調整大小時重新繪制”的功能。

似乎在放棄並提出我的問題后,我就有一個好主意的趨勢。 我意識到在生成PHP圖表的過程中,我還可以創建(在PHP中)一個javaScript函數來進行刷新,然后從jQuery調整大小中調用該函數。 下面的PHP遵循創建我的圖表/ divs /回調函數的循環,並且看起來工作得很漂亮。

#Generate Chart Refresh Function to call on Window Resize
print('<script>');
print('function drawVisualization() {');
foreach($entity as $chartid){
    print('   drawVisualization_'.$chartid["uniqueIDperChart"].'();');
}
print('};');
print('</script>');

因此,如果我有四個圖表,該函數將具有四個drawVizualization_uniqueID(); 調用,然后從綁定到窗口調整大小的jQuery事件中調用函數drawVisualization()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM