当前位置:  开发笔记 > 编程语言 > 正文

使用jQuery $(document).ready()的google.setOnLoadCallback,可以混合使用吗?

如何解决《使用jQuery$(document).ready()的google.setOnLoadCallback,可以混合使用吗?》经验,为你挑选了3个好方法。

我正在使用Google Ajax API,他们建议我使用google.setOnLoadCallback()与他们的API相关的各种事情,但我也使用jQuery $(document).ready()来做其他JS事情,与Google API无关.

将这两种方法混合在一个文档中是否安全?我没有注意到任何问题,但我认为这是一个规模问题.



1> cletus..:

你几乎必须这样做:

google.setOnLoadCallback(function() {
  $(function() {
    // init my stuff
  });
});

你不能$(document).ready()没有$(jQuery对象)可用,所以需要进入回调.而且您无法确定文档在回调中是否已准备就绪,因此您必须这样做ready().



2> 小智..:

很抱歉从死里复活,但1)它仍然是这个问题的"答案",2)我找到了一个更好的解决方案.

在函数上有一个可选的第3个参数,google.load它接受配置选项的对象.其中一个选择是callback.它也摆脱了单独setOnLoadCallback呼叫的需要.

例如

google.load('visualization', '1.0', {
    'packages': "charttype", 
    'callback': $jQ.proxy(me.setupChart, me)
});

所以:



请参阅:https: //developers.google.com/loader/#Dynamic



3> andy..:

如果您的JavaScript代码驻留在自己的js文件中而不是HTML文档中,您也可以在文档中执行此操作:


my.js是从谷歌加载所有其他东西后加载.在您的my.js文件中,您可以这样做$(document).ready(...).因此,您的应用程序代码独立于"由Google加载"或"直接从您的服务器加载".

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有