Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jQuery与google.load一起使用_Javascript_Jquery - Fatal编程技术网

Javascript 将jQuery与google.load一起使用

Javascript 将jQuery与google.load一起使用,javascript,jquery,Javascript,Jquery,我试图理解在使用GoogleCDN的Google.load方法加载jQuery时如何使用它 将init代码放在setOnLoadCallback函数中效果很好,但在标记中为事件处理程序定义函数似乎不起作用。在下面的示例中,P按钮按预期工作,但Div按钮不执行任何操作 是的,在本例中,我可以将div的onclick处理程序也放在setOnLoadCallback函数中,但这是否意味着alljQuery代码必须在那里 帮忙?谢谢 <p id="p">Content</p>&l

我试图理解在使用GoogleCDN的Google.load方法加载jQuery时如何使用它

将init代码放在setOnLoadCallback函数中效果很好,但在标记中为事件处理程序定义函数似乎不起作用。在下面的示例中,P按钮按预期工作,但Div按钮不执行任何操作

是的,在本例中,我可以将div的onclick处理程序也放在setOnLoadCallback函数中,但这是否意味着alljQuery代码必须在那里

帮忙?谢谢

<p id="p">Content</p><button type="button" id="btn1">P</button>

<div id="div">Div</div><button type="button" id="btn2" onclick="btn2()">Div</button>

<script src="http://www.google.com/jsapi"></script>

<script>

function btn2() {
 $("#div").toggle("slow");
}

google.load("jquery", "1.3.2");
google.setOnLoadCallback(function() {
$("#btn1").click(function () {
      $("p").toggle("slow");
});
});

</script>
内容 DivDiv 函数btn2(){ $(“#div”)。切换(“慢速”); } load(“jquery”,“1.3.2”); setOnLoadCallback(函数(){ $(“#btn1”)。单击(函数(){ $(“p”)。切换(“慢速”); }); });
JQ的一个关键点是不引人注目,因此您不应该使用
。您应该始终使用
$(选择器)。单击()。此外,您通常希望将其合并到单个
$(document).ready()中,或在外部脚本中

将您的Google jsapi脚本调用和
Google.load
放在文档的
顶部。当运行时,它将只输出

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" 
    type="text/javascript"></script> 

它是
$(document.ready(function(){})的缩写

是的,如果要以这种方式加载jQuery,则需要将所有jQuery代码都放在setOnLoadCallback中。在该事件触发之前,无法保证jQuery脚本已加载,因此该函数之外的任何jQuery代码都可能无效。如果要在该事件之外定义jQuery代码,可以通过从Google的CDN URL加载jQuery来完成,而不是通过Google.load()动态加载

谷歌CDN中jQuery的url如下所示:


您可以像往常一样将其作为外部脚本资源包含在文档的头部。您仍然可以获得Google CDN的好处,因为大多数浏览器都会在该位置缓存jQuery副本(假设他们访问了另一个使用Google CDN的站点)。

我同意,但我继承了很多在标记中嵌入事件处理程序的做法:-(我想在事件处理程序的实现中使用jQuery。从目前的响应来看,这似乎无法使用google.load技术来实现,必须使用指向库的直接路径来实现。因此,这似乎是更灵活的方法,我想知道谷歌为什么推荐使用google.load!我个人不在生产。我知道它的好处,但我不喜欢让事情超出我的控制范围…我宁愿在发送之前使用一个缩微器将我所有的css压缩到一个文件中,并将我所有的js压缩到服务器端的一个文件中。我没有得到缓存的好处,但为了更好的控制和更高的可用性,我可以接受它。我不完全是这样云的ting:-)我明白你只支持一个环境的观点。但是当你有十几个测试环境时,在所有这些服务器上更新最新版本的JS框架/库会有点麻烦,更容易指向CDN并让其他人来做。谢谢。这就是SVN外部或构建系统的用途:-)
$(function() {
    // all your jQuery code here
});