2016-09-16 48 views
0

我使用谷歌圖表甘特在我的網頁繪製多個圖表,這是代碼:試圖繪製多個甘特圖只消耗1

function drawGantt() { 

    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Task ID'); 
    data.addColumn('string', 'Task Name'); 
    data.addColumn('string', 'Resource'); 
    data.addColumn('date', 'Start Date'); 
    data.addColumn('date', 'End Date'); 
    data.addColumn('number', 'Duration'); 
    data.addColumn('number', 'Percent Complete'); 
    data.addColumn('string', 'Dependencies'); 

    data.addRows([ 
    ['2014Spring', 'Spring 2014', 'spring', 
    new Date(2014, 2, 22), new Date(2014, 5, 20), null, 100, null], 
    ['2014Summer', 'Summer 2014', 'summer', 
    new Date(2014, 5, 21), new Date(2014, 8, 20), null, 100, null], 
    ['2014Autumn', 'Autumn 2014', 'autumn', 
    new Date(2014, 8, 21), new Date(2014, 11, 20), null, 100, null], 
    ['2014Winter', 'Winter 2014', 'winter', 
    new Date(2014, 11, 21), new Date(2015, 2, 21), null, 100, null], 
    ['2015Spring', 'Spring 2015', 'spring', 
    new Date(2015, 2, 22), new Date(2015, 5, 20), null, 50, null], 
    ['2015Summer', 'Summer 2015', 'summer', 
    new Date(2015, 5, 21), new Date(2015, 8, 20), null, 0, null], 
    ['2015Autumn', 'Autumn 2015', 'autumn', 
    new Date(2015, 8, 21), new Date(2015, 11, 20), null, 0, null], 
    ['2015Winter', 'Winter 2015', 'winter', 
    new Date(2015, 11, 21), new Date(2016, 2, 21), null, 0, null], 
    ['Football', 'Football Season', 'sports', 
    new Date(2014, 8, 4), new Date(2015, 1, 1), null, 100, null], 
    ['Baseball', 'Baseball Season', 'sports', 
    new Date(2015, 2, 31), new Date(2015, 9, 20), null, 14, null], 
    ['Basketball', 'Basketball Season', 'sports', 
    new Date(2014, 9, 28), new Date(2015, 5, 20), null, 86, null], 
    ['Hockey', 'Hockey Season', 'sports', 
    new Date(2014, 9, 8), new Date(2015, 5, 21), null, 89, null] 
    ]); 

    var els = document.getElementsByClassName("gantt-chart"); 

    for(i = 0; i < els.length; i++){ 

     var el = els[i]; 

     var options = { 
      width: 1100, 
      height: 400, 
      chartArea: {width: '100%', height: '100%'}, 
      gantt: { 
       trackHeight: 30 
      } 
     }; 

     var chart = new google.visualization.Gantt(el); 
     chart.draw(data, options); 
    } 
} 

正如你可以在看到底我使用循環遍歷HTML中的元素,併爲每個元素分配一個圖表,但結果是除1以外的所有圖表都是空的,每次都會呈現隨機數。

我讀過​​,它涉及到不同圖表的類似問題,但我無法真正應用該解決方案,因爲我可以輕鬆地在頁面中同時呈現超過15個圖表。

如何在不與draw函數衝突的情況下同時渲染所有這些圖表?

在此先感謝。

回答

0

代碼似乎罰款這裏工作......

google.charts.load('current', {'packages':['gantt']}); 
 
google.charts.setOnLoadCallback(drawGantt); 
 

 
function drawGantt() { 
 

 
    var data = new google.visualization.DataTable(); 
 
    data.addColumn('string', 'Task ID'); 
 
    data.addColumn('string', 'Task Name'); 
 
    data.addColumn('string', 'Resource'); 
 
    data.addColumn('date', 'Start Date'); 
 
    data.addColumn('date', 'End Date'); 
 
    data.addColumn('number', 'Duration'); 
 
    data.addColumn('number', 'Percent Complete'); 
 
    data.addColumn('string', 'Dependencies'); 
 

 
    data.addRows([ 
 
    ['2014Spring', 'Spring 2014', 'spring', 
 
    new Date(2014, 2, 22), new Date(2014, 5, 20), null, 100, null], 
 
    ['2014Summer', 'Summer 2014', 'summer', 
 
    new Date(2014, 5, 21), new Date(2014, 8, 20), null, 100, null], 
 
    ['2014Autumn', 'Autumn 2014', 'autumn', 
 
    new Date(2014, 8, 21), new Date(2014, 11, 20), null, 100, null], 
 
    ['2014Winter', 'Winter 2014', 'winter', 
 
    new Date(2014, 11, 21), new Date(2015, 2, 21), null, 100, null], 
 
    ['2015Spring', 'Spring 2015', 'spring', 
 
    new Date(2015, 2, 22), new Date(2015, 5, 20), null, 50, null], 
 
    ['2015Summer', 'Summer 2015', 'summer', 
 
    new Date(2015, 5, 21), new Date(2015, 8, 20), null, 0, null], 
 
    ['2015Autumn', 'Autumn 2015', 'autumn', 
 
    new Date(2015, 8, 21), new Date(2015, 11, 20), null, 0, null], 
 
    ['2015Winter', 'Winter 2015', 'winter', 
 
    new Date(2015, 11, 21), new Date(2016, 2, 21), null, 0, null], 
 
    ['Football', 'Football Season', 'sports', 
 
    new Date(2014, 8, 4), new Date(2015, 1, 1), null, 100, null], 
 
    ['Baseball', 'Baseball Season', 'sports', 
 
    new Date(2015, 2, 31), new Date(2015, 9, 20), null, 14, null], 
 
    ['Basketball', 'Basketball Season', 'sports', 
 
    new Date(2014, 9, 28), new Date(2015, 5, 20), null, 86, null], 
 
    ['Hockey', 'Hockey Season', 'sports', 
 
    new Date(2014, 9, 8), new Date(2015, 5, 21), null, 89, null] 
 
    ]); 
 

 
    var els = document.getElementsByClassName("gantt-chart"); 
 

 
    for(i = 0; i < els.length; i++){ 
 
    var el = els[i]; 
 

 
    var options = { 
 
     width: 1100, 
 
     height: 400, 
 
     chartArea: {width: '100%', height: '100%'}, 
 
     gantt: { 
 
     trackHeight: 30 
 
     } 
 
    }; 
 

 
    var chart = new google.visualization.Gantt(el); 
 
    chart.draw(data, options); 
 
    } 
 
}
div { 
 
    border: 1px solid #e0e0e0; 
 
    padding: 6px; 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div class="gantt-chart"></div> 
 
<div class="gantt-chart"></div> 
 
<div class="gantt-chart"></div> 
 
<div class="gantt-chart"></div> 
 
<div class="gantt-chart"></div> 
 
<div class="gantt-chart"></div>

+0

更可以分享?這是整個頁面嗎?什麼瀏覽器?使用最新的Chrome版本發佈... – WhiteHat