我正在查看的应用程序加载一个外部javascript文件,如下所示:
$(function () {
// Don't allow browser caching of forms
$.ajaxSetup({ cache: false });
var dialogs = {};
var getValidationSummaryErrors = function ($form) {
// We verify if we created it beforehand
...
...
}
return errorSummary;
};
据我所知,该文件设置了一些变量,并声明了一个名为getValidationSummaryErrors的函数。
我不明白为什么这一切都在
之内$(function () { ... }
这是为了什么目的?我不能只在没有“$(function(){}”的情况下在平面文件中声明变量和内容吗?
答案 0 :(得分:7)
$(function() { ... });
只是$(document).ready(function() { ... });
的缩写,它确保在DOM准备好之前不执行代码,否则一些影响DOM的代码可能无法正常工作。
答案 1 :(得分:3)
$(function () { ... });
表示函数将在加载页面(DOM部分)之后运行,而不是在解析代码时运行。这样您就可以确保页面加载速度更快,并且还可以使用所有必要的内容来运行javascript。
答案 2 :(得分:3)
$()
是jQuery.ready()
的快捷方式,它在页面DOM完全加载后执行代码。有时您希望在执行某些操作之前确保文档已准备就绪。
答案 3 :(得分:2)
这是$(document).ready(function(){...})的简明符号。注意:在加载DOM时,jQuery文档就会触发。等待整个页面(包含的图像等)加载。
实际上,您放入<head>
的任何脚本都会立即执行,即如果脚本与DOM进行交互,则需要准备就绪。
第三,需要分离关注点。理想情况下,您的javaScript和HTML位于单独的文件中。如果您这样做,您的HTML中根本就没有任何内联脚本标记。