0

这个Google jQuery GeoChart 插件像这样工作得很好:

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

      function drawRegionsMap() {
        // code to draw map
      };

</script>

但是将代码移动到类中会破坏一切。浏览器为空白,状态仍为“正在从 www.google.com 传输数据”。

(function( someClass, undefined ) {
    someClass.init= function() {
       console.log(google); //google object defined but next line breaks:
       google.load('visualization', '1', {'packages': ['geochart']}); 

       ...remainder of code
    };
}( window.Project.Pages.someClass = window.Project.Pages.someClass || {}));

关于为什么的任何想法?

4

2 回答 2

1

问题是由谷歌加载脚本的方式引起的。问题的简化版本出现在此问题中:问题是由于 Google 脚本的加载延迟造成的。

我之前写了一个补丁来解决这个问题,请看这个答案。只需在使用前评估补丁google.load

于 2012-07-04T19:21:06.187 回答
0

我不知道你的意思,但这有效......

(function( someClass ) {
    someClass.init= function() {
       google.load('visualization', '1', {'packages': ['geochart']}); 
       google.setOnLoadCallback(function(){ alert('setOnLoadCallback'); });
    };
}( someClass = {}));
someClass.init();

http://jsbin.com/inurif/edit#source

于 2012-07-05T01:23:06.133 回答