两者之间有什么区别。
$(document).ready(function(){ ... });
(function(){ ... })();
这两个功能是否同时调用?我知道,当整个HTML页面由浏览器呈现时,document.ready将被触发,但是第二个函数(自调用匿名函数)呢?它是等待浏览器完成页面渲染还是在遇到页面时调用它?
两者之间有什么区别。
$(document).ready(function(){ ... });
(function(){ ... })();
这两个功能是否同时调用?我知道,当整个HTML页面由浏览器呈现时,document.ready将被触发,但是第二个函数(自调用匿名函数)呢?它是等待浏览器完成页面渲染还是在遇到页面时调用它?
Answers:
$(document).ready(function(){ ... });
或短 $(function(){...});
当DOM is ready
表示可以开始查询元素时,将调用此函数。.ready()
将在不同的浏览器上使用不同的方式来确保DOM确实可用。
(function(){ ... })();
这无非是一个功能,当浏览器解释您的时,该功能会尽快调用自身ecma-/javascript
。因此,您不可能成功地在DOM elements
此处采取行动。
(function(){ ... })();
是否没有尽快运行任何JS代码?如果您说的alert()
是SIAF 的内部还是外部,效果会不会一样?
$(document).ready(function() { ... });
只需将该函数绑定到ready
文档的事件,因此,正如您所说的,当文档加载时,事件触发。
(function($) { ... })(jQuery);
实际上是Javascript的构造,所有代码段所做的只是将jQuery
对象function($)
作为参数传递给它并运行该函数,因此在该函数内部$
始终引用该jQuery
对象。这可以帮助解决命名空间冲突等问题。
因此,在加载文档时执行#1,而在立即运行#2时将jQuery
对象命名$
为速记。
当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);
$(function() {});
等同于$(document).ready(function() {});