Javascript 为什么这里使用jQuery语法?
在这个screencast()中,我想我经常看到jQuery语法被用来包装和定义没有从jQuery中获益的函数。例如:Javascript 为什么这里使用jQuery语法?,javascript,jquery,Javascript,Jquery,在这个screencast()中,我想我经常看到jQuery语法被用来包装和定义没有从jQuery中获益的函数。例如: <script> $(function() { // some code to run at load time }); </script> $(函数(){ //一些代码在加载时运行 }); 如果没有第2行和第4行,编写代码会更短。采用这种方式编写代码有什么价值吗?通过要求库在整个DOM就绪之前不要运行jQuery,代码“受益于jQ
<script>
$(function() {
// some code to run at load time
});
</script>
$(函数(){
//一些代码在加载时运行
});
如果没有第2行和第4行,编写代码会更短。采用这种方式编写代码有什么价值吗?通过要求库在整个DOM就绪之前不要运行jQuery,代码“受益于jQuery”。例如,如果该代码位于
中,则对DOM的引用(通过“id”或“class”或其他任何方式)通常不起作用,因为主体尚未加载,因此没有可查找的元素。通过要求库在整个DOM就绪之前不要运行它,代码是“受益于jQuery”。例如,如果该代码位于
中,则对DOM的引用(通过“id”或“class”或其他任何方式)通常不起作用,因为主体尚未加载,因此没有要查找的元素。即使函数未显式使用JQuery,它也将在文档的ready
事件上执行。使用window.onload=function(){}
也可以达到同样的效果,但是JQuery的版本更好,因为它允许任意数量的函数监听ready
事件 即使函数没有显式使用JQuery,它也会在文档的ready
事件上执行。使用window.onload=function(){}
也可以达到同样的效果,但是JQuery的版本更好,因为它允许任意数量的函数监听ready
事件 此语句是一个文档就绪语句,基本上是说“在DOM准备好被操作之前,请不要运行此块中的任何代码。”此语句是一个文档就绪语句,基本上是说“在DOM准备好被操作之前,请不要运行此块中的任何代码。”这没什么错,只是在某些情况下,您可能希望在查找的DOM对象存在时立即使用函数,所以我们将函数保留在外部,并尽快使用“on*”事件。但将其包装在jquery all DOM ready函数中只是一种更安全的编写方式。只有在某些情况下,您可能希望在查找的DOM对象存在时立即使用函数,所以我们将函数留在外部,并尽快使用“on*”事件。但在jquery all DOM ready函数中封装它只是一种更安全的编写方法。如果没有,它将在DOM元素还不可用时立即运行。jQuery确保$(function(){…})
之间的代码只有在它们可用后才执行,因此您可以从函数中访问它们。jQuery不检查元素是否可用,只检查DOM是否准备好编写脚本。如果以其他方式加载元素,jQuery将不会等待。如果没有,它将在DOM元素不可用时立即运行。jQuery确保$(function(){…})
之间的代码只有在它们可用后才执行,因此您可以从函数中访问它们。jQuery不检查元素是否可用,只检查DOM是否准备好编写脚本。如果以其他方式加载元素,jQuery不会等待。如果它只在document
的ready
上执行,那么为什么符号$(document).ready(function(){…})代码>是否存在?为什么不删除$(文档).ready
部分?您是正确的:$(文档).ready(函数(){
与$(函数()相同){
。后者只是不是每个人都使用或知道的简写。严格来说,onload侦听器应该在body元素上,而不是在window上。当然,有很多方法可以在不使用jQuery的情况下设置多个onload侦听器,包括使用addEventListener/attachEvent。如果是这样的情况,它将只在ready
上为d执行文档
,那么为什么符号$(document).ready(function(){…});
根本不存在?为什么不删除$(document).ready
部分?您是对的:$(document).ready(function(){
与$(function()相同){
。后者只是不是每个人都使用或知道的简写。严格来说,onload侦听器应该在body元素上,而不是在window上。当然,有很多方法可以在不使用jQuery的情况下设置多个onload侦听器,包括使用addEventListener/attachEvent。如果是这样的情况,它将只在ready
上为d执行文档
,那么为什么符号$(document).ready(function(){…});
根本不存在?为什么不一直删除$(document).ready
部分?您是对的:$(document).ready(function(){
与$(function()相同){
。后者只是速记,不是每个人都使用或知道。如果它只在ready
上执行document
,那么为什么符号$(document).ready(function(){…});
存在?为什么不删除$(document).ready
一直是部分?你是对的:$(document).ready(function(){
与$(function(){
)完全相同。后者只是速记,并非每个人都使用或知道。