2014-03-05 45 views
0

我得到這個錯誤在我的JavaScript代碼。當我分別處理圖表和地圖時,它工作得很好。但是,當我整合這兩個它停止工作。如何解決Uncaught TypeError:對象不是函數?

<html> 
<head> 
    <script type='text/javascript' src='https://www.google.com/jsapi'></script> 
    <script type='text/javascript'> 
    google.load('visualization', '1', {'packages': ['geomap']}); 
    google.setOnLoadCallback(drawMap); 
    var test; 

    function drawMap() { 
     var test1 = {{pie2008|safe}} 
     var test2 = {{pie2009|safe}} 
     var test3 = {{pie2010|safe}} 

     console.log(test1); 
     console.log(test2); 
     console.log(test3); 
    } 

    function drawMap2008() { 
     console.log("In draw map function"); 
     var data = google.visualization.arrayToDataTable({{data2008|safe}}); 
     var options = {}; 
     options['region'] = 'US' 
     options['dataMode'] = 'regions'; 
     var container = document.getElementById('map_canvas'); 
     var geomap = new google.visualization.GeoMap(container); 
     console.log(data); 
     geomap.draw(data, options); 
    } 

    function drawMap2009() { 
     console.log("In draw map function"); 
     var data = google.visualization.arrayToDataTable({{data2009|safe}}); 
     var options = {}; 
     options['region'] = 'US' 
     options['dataMode'] = 'regions'; 
     var container = document.getElementById('map_canvas'); 
     var geomap = new google.visualization.GeoMap(container); 
     console.log(data); 
     geomap.draw(data, options); 
    } 

    function drawMap2010() { 
     console.log("In draw map function"); 
     var data = google.visualization.arrayToDataTable({{data2010|safe}}); 
     var options = {}; 
     options['region'] = 'US' 
     options['dataMode'] = 'regions'; 
     var container = document.getElementById('map_canvas'); 
     var geomap = new google.visualization.GeoMap(container); 
     console.log(data); 
     geomap.draw(data, options); 
    } 

    function drawChart2008() { 
     var data = google.visualization.arrayToDataTable({{pie2008|safe}}); 
     var options = { 
      title: 'Maximum Facebook users for 2008', 
      pieHole: 0.4, 
     };  
     var chart = new google.visualization.PieChart(document.getElementById('donutchart')); 
     chart.draw(data, options); 
     } 

    function drawChart2009() { 
      console.log("In draw map function"); 
     var data = google.visualization.arrayToDataTable({{pie2009|safe}}); 
     var options = { 
      title: 'Maximum Facebook users for 2009', 
      pieHole: 0.4, 
     };  
     var chart = new google.visualization.PieChart(document.getElementById('donutchart')); 
     chart.draw(data, options); 
     } 

     function drawChart2010() { 
      console.log("In draw map function"); 
     var data = google.visualization.arrayToDataTable({{pie2010|safe}}); 
     var options = { 
      title: 'Maximum Facebook users for 2010', 
      pieHole: 0.4, 
     };  
     var container2 = document.getElementById('donutchart'); 
     var chart = new google.visualization.PieChart(container2); 
     chart.draw(data, options); 
     } 

    </script> 
</head> 

<body> 
    <div id="handb"> 
    <h3>No of facebook users per state</h3> 
    <button id="data2008" onclick = "drawMap2008()">Intensity Map for 2008</button> 
    <button id="data2009" onclick = "drawMap2009()">Intensity Map for 2009</button> 
    <button id="data2010" onclick = "drawMap2010()">Intensity Map for 2010</button> 
    <button id="pie2008" onclick = "drawChart2008()">Pie chart for 2008</button> 
    <button id="pie2009" onclick = "drawChart2009()">Pie chart for 2009</button> 
    <button id="pie2010" onclick = "drawChart2010()">Pie chart for 2010</button> 
    </div> 
    <div id='map_canvas'></div> 
    <div id='donutchart'></div> 
</body> 

</html> 

我不明白爲什麼我得到這個錯誤。我在drawchart2008函數中得到這個錯誤 - var chart = new google.visualization.PieChart(document.getElementById('donutchart')); chart.draw(data,options);

回答

0

我的懷疑可能是chart.draw(data, options);實際上不是函數(.draw()不是chart類型的方法)。
僅僅因爲.draw()存在於geomap.draw(data, options);並不意味着它爲chart

相關問題