6

Hiçbir şey yapmadan Google grafiklerle çalışıyorum ama şimdi Ajax-rendered parsiyelinde bir grafik göstermem gereken bir noktaya geldim.Rails 3.1'de Google Grafikler Ajax Kısmi

Açıkçası hiçbir şey göstermiyor. Ben grafik etkinleştirmek için değil grafik yapmak için Java tetikleyici ile bir şey biliyorum, ama ben tam olarak ne yapmam gerektiği ile bazı yardıma ihtiyacım var ...

Şunun gibi bir şey var (Ajax olmayan) : ana sayfasında

<html> 
    <head> 
    <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 
     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     function drawChart() { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Year'); 
     data.addColumn('number', 'Sales'); 
     data.addColumn('number', 'Expenses'); 
     data.addRows([ 
      ['2004', 1000, 400], 
      ['2005', 1170, 460], 
      ['2006', 660, 1120], 
      ['2007', 1030, 540] 
     ]); 

     var options = { 
      width: 400, height: 240, 
      title: 'Company Performance', 
      vAxis: {title: 'Year', titleTextStyle: {color: 'red'}} 
     }; 

     var chart = new google.visualization.AreaChart(document.getElementById('chart_div')); 
     chart.draw(data, options); 
     } 
    </script> 
    </head> 
    <body> 
    <div id="chart_div"></div> 
    </body> 
</html> 

cevap

8

bu (kısmi google grafikleri yüklemek için gerek yoktur) tutmak:

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
    google.load("visualization", "1", {packages:["corechart"]}); 
</script> 

senin kısmi olarak sizin gibi aşağıda bir şey yapmak gerekir (jQuery kullanmak varsayarak). jQuery size birçok saat kurtaracak

<div id="chart_div"></div> 
<script type="text/javascript"> 
    $(function() { 
    drawChart(); 
    }); 

    function drawChart() { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Year'); 
    data.addColumn('number', 'Sales'); 
    data.addColumn('number', 'Expenses'); 
    data.addRows([ 
     ['2004', 1000, 400], 
     ['2005', 1170, 460], 
     ['2006', 660, 1120], 
     ['2007', 1030, 540] 
    ]); 

    var options = { 
     width: 400, height: 240, 
     title: 'Company Performance', 
     vAxis: {title: 'Year', titleTextStyle: {color: 'red'}} 
    }; 

    var chart = new google.visualization.AreaChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
    } 
</script> 

kütüphane kullanma gibi: nokta $ (function() {....}) yok budur dom yüklenir sonra js kodunu yürütmektir dom düzgün bir şekilde yüklendiğini bilmek için tarayıcı tutarsızlıkları.

0

$(function() { 
    drawChart(); 
}); 

ile

google.setOnLoadCallback(drawChart); 

Değiştirme AJAX partials için hile yaptı! Yardım için teşekkürler, daha önce DOM yeniden yüklendi ancak grafikler eklenmedi.

İlgili konular