Google Chart API回调函数未被调用

时间:2013-03-04 09:11:19

标签: jquery google-visualization donut-chart

我正在尝试使用Google Chart API渲染数据,但奇怪的是,当我加载可视化API时,回调函数不会被调用。 我在http://jsfiddle.net/jagzviruz/ZBMnh/

创造了一个小提琴
var DonutChart = {
data : [
    ['Sales', 20],
    ['Returns', 12],
    ['Pending', 80],
    ['Processed',990]
],
init : function(){
    $.getScript('https://www.google.com/jsapi', this.loadPackages);
},
loadPackages : function(){
    console.log('Loaded API.. now loading packages');
    var o = this;
    google.load("visualization", "1", {packages:["corechart"]});
    google.setOnLoadCallback(o.renderData);
},
renderData: function(){
    //console.log('Loaded Packages.. Now showing charts');
    alert('Render Data');
}};

DonutChart.init();

我从来没有得到警报。其他控制台消息显示正常。

1 个答案:

答案 0 :(得分:0)

使用DonutChar而不是this来引用函数指针:

$.getScript('https://www.google.com/jsapi', DonutChart.loadPackages);

init功能相当于:

function foo()
  {
  $.getScript('https://www.google.com/jsapi', this.loadPackages);
  }

DonutChart.init = foo

因此,this等于foo而不是DonutChart