使用谷歌图表时,setOnLoadCallback不会触发

时间:2014-08-21 14:08:46

标签: javascript google-api google-visualization

在调用此功能时,我得到一个没有正文的空白页面。我做了一些测试,发现alert()没有触发。任何建议?

function draw()
  {

   google.load('visualization', '1.0', {'packages':['corechart']});

   google.setOnLoadCallback(function (){

      alert("callback");
      var data = new google.visualization.DataTable();
      data.addColumn('string', 'header');
      data.addColumn('number', 'percntile');
      data.addRows([
       ['above', 50.1],
       ['below', 49.9]
      ]);

    // Set chart options
    var options = {'title':'tfyfty',
                   'width':400,
                   'height':300
               };

    var chart = new google.visualization.PieChart($('#content'));
    chart.draw(data, options);
  });

  }

3 个答案:

答案 0 :(得分:0)

你真的在叫你draw功能吗?你是否包括谷歌脚本?我看到的唯一错误是使用

var chart = new google.visualization.PieChart($('#content'));

而不是:

var chart = new google.visualization.PieChart(document.getElementById('content'));

改变它:http://jsfiddle.net/kpv5nr30/

答案 1 :(得分:0)

我认为可能是你的函数调用不适合尝试在第一行draw()上设置警告。如果它工作则必须有任何语法错误.....尝试调用的加载方法。 .. google.load("visualization", "1", { packages: ["corechart"] });

答案 2 :(得分:0)

当从其他功能内部调用时,谷歌加载程序表现得很奇怪。如果使用加载器内联设置回调,则不应该有任何问题:

function draw()
{
    google.load('visualization', '1.0', {'packages':['corechart'], callback: function () {
        alert("callback");
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'header');
        data.addColumn('number', 'percntile');
        data.addRows([
            ['above', 50.1],
            ['below', 49.9]
        ]);

        // Set chart options
        var options = {
            'title':'tfyfty',
            'width':400,
            'height':300
        };

        var chart = new google.visualization.PieChart($('#content'));
        chart.draw(data, options);
    }});
}