首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用$(document).ready方法显示空白屏幕

使用$(document).ready方法显示空白屏幕
EN

Stack Overflow用户
提问于 2011-03-04 18:06:58
回答 9查看 37.2K关注 0票数 28

我有几个函数使用Google实例化各种图表。

当我在没有jQuery的$(document).ready方法的情况下调用它们时,一切正常。但是用这种方法,我看到的是空白屏幕。

为什么?

代码语言:javascript
复制
<script type="text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js" charset="utf-8"></script>
<script type="text/javascript" src = "http://www.google.com/jsapi" charset="utf-8"></script>
function drawColumnChart1(){..some code..}
function drawColumnChart2(){..some code..}
function drawGeoChart(){.some code..}

//This works fine.
google.load("visualization", "1", {packages:["piechart", "corechart", "geomap"]});
google.setOnLoadCallback(window.drawColumnChart1);
google.setOnLoadCallback(window.drawColumnChart2);
google.setOnLoadCallback(window.drawGeoChart);



//This doesn't work
$(document).ready(function(){
    google.load("visualization", "1", {packages:["piechart", "corechart", "geomap"]});
    google.setOnLoadCallback(window.drawColumnChart1);
    google.setOnLoadCallback(window.drawColumnChart2);
    google.setOnLoadCallback(window.drawGeoChart);
});

UPDATE这里是我在Firebug中遇到的错误:

代码语言:javascript
复制
uncaught exception: [Exception... "Could not convert JavaScript argument"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: http://www.google.com/jsapi :: Q :: line 20"  data: no]
http://www.google.com/jsapi
Line 22
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-03-04 18:45:27

票数 21
EN

Stack Overflow用户

发布于 2011-09-19 19:49:05

根据Google可视化文档,您需要在之前加载可视化包以加载或准备jquery。我建议在jsapi脚本引用之后立即加载,如下所示。

否则,您将得到一个google未定义(引用错误)或2),如果使用ajax,可能是一个空白响应&没有错误的空白页面。

加载序列:(使用您的示例)

代码语言:javascript
复制
<script type="text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js" charset="utf-8"></script>
<script type="text/javascript" src = "http://www.google.com/jsapi" charset="utf-8"></script>
<script type="text/javascript">
    google.load("visualization", "1", {packages:["piechart", "corechart", "geomap"]});
</script>

$(document).ready(function(){
    google.setOnLoadCallback(window.drawColumnChart1);
    google.setOnLoadCallback(window.drawColumnChart2);
    google.setOnLoadCallback(window.drawGeoChart);
});
票数 14
EN

Stack Overflow用户

发布于 2012-11-06 04:02:58

下面是我使用的范例。为google.load方法设置一个回调,并且根本不使用google.setOnLoadCallback (AFAIK这是不需要的)。

代码语言:javascript
复制
MyChart.prototype.render = function() {
    var self = this;
    google.load("visualization", 
                "1", 
                { callback: function() { self.visualize(); }, 
                  packages: ["corechart"] }
               );
}

MyChart.prototype.visualize = function() {

    var data = google.visualization.arrayToDataTable(
    [
        ['Year', 'Sales', 'Expenses'],  
        ['2004',  1000,      400],
        ['2005',  1170,      460],
        ['2006',  660,       1120],
        ['2007',  1030,      540]   
    ]);

    var options = {
        title: 'Company Performance',
        hAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
    };

    var chart = new google.visualization.ColumnChart(document.getElementById("mychart_div"));    
    chart.draw(data, options);
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5197547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档