这两者有什么区别。
$(document).ready(function(){ ... });
(function(){ ... })();
这两个函数是同时调用的吗?我知道,当整个 HTML 页面被浏览器呈现时,document.ready 将被触发,但是第二个函数(自调用匿名函数)呢?它是等待浏览器完成渲染页面还是在遇到它时调用它?
这两者有什么区别。
$(document).ready(function(){ ... });
(function(){ ... })();
这两个函数是同时调用的吗?我知道,当整个 HTML 页面被浏览器呈现时,document.ready 将被触发,但是第二个函数(自调用匿名函数)呢?它是等待浏览器完成渲染页面还是在遇到它时调用它?
$(document).ready(function(){ ... });
或短 $(function(){...});
当DOM is ready
这意味着您可以开始查询元素时调用此函数。.ready()
将在不同的浏览器上使用不同的方式来确保 DOM 真的准备好了。
(function(){ ... })();
这只不过是一个函数,它会在浏览器解释您的ecma-/javascript
. 因此,您在DOM elements
这里成功采取行动的可能性很小。
(function(){...})();
将在 Javascript 中遇到时立即执行。
$(document).ready()
将在加载文档后执行。 $(function(){...});
是一个快捷方式,$(document).ready()
并且做完全相同的事情。
当 DOM(文档对象模型)准备好执行 JavaScript 代码时,将执行以下代码。
$(document).ready(function(){
// Write code here
});
上面代码的简写是:
$(function(){
// write code here
});
下面显示的代码是一个自调用匿名 JavaScript 函数,浏览器解释后会立即执行:
(function(){
//write code here
})(); // It is the parenthesis here that call the function.
下面显示的 jQuery 自调用函数将全局 jQuery 对象作为参数传递给function($)
. 这使得$
可以在自调用函数中本地使用,而无需遍历定义的全局范围。jQuery 不是唯一使用 的库$
,因此这减少了潜在的命名冲突。
(function($){
//some code
})(jQuery);
$(document).ready(function() { ... });
简单地将该函数绑定到ready
文档的事件,因此,正如您所说,当文档加载时,事件会触发。
(function($) { ... })(jQuery);
实际上是 Javascript 的一种构造,这段代码所做的就是将jQuery
对象function($)
作为参数传入并运行该函数,因此在该函数中,$
始终引用该jQuery
对象。这可以帮助解决命名空间冲突等。
所以#1 在加载文档时执行,而#2 立即运行,jQuery
对象命名$
为速记。
document.ready 在“构造”DOM 后运行。自调用函数立即运行 - 如果插入到<head>
,则在构造 DOM 之前。