jQuery DOM就绪,JavaScript执行
jQuery DOM ready and JavaScript execution
下面的剪切是如何工作的?
$((function () {
alert('I''m ready!')
}()));
据我所知:
- 执行jQuery.ready()-只有在加载DOM后才会触发
- 它被包装为保持匿名(如果它被传递给$,有意义吗?)
- 函数被定义并立即执行
以下剪辑是如何工作的?
可以说,事实并非如此。
让我们使用一个中间变量将代码正在做的两件事分开:
// First
var x = (function () {
alert('I''m ready!')
}());
// Then:
$(x);
第一位定义一个函数并立即调用它,从而显示alert
。函数调用的返回值存储在x
中。由于函数不返回任何内容,因此调用它的结果是undefined.
然后,第二个位调用传入undefined
的jQuery的$
函数,该函数基本上不会执行任何操作。
你可能是这个意思:
$(function () {
alert('I''m ready!')
});
请注意,在调用它的函数之后没有()
// First
var x = function () {
alert('I''m ready!')
};
// Then:
$(x);
这里发生的事情是,函数被定义,而没有被调用;对该函数的引用被存储在CCD_ 7中。
然后我们调用$
并传入该函数引用,这是$(document).ready(x)
的快捷方式。
所以这个代码:
$(function () {
alert('I''m ready!')
});
首先定义一个函数(不调用它),然后将对该函数的引用传递到$
中。
稍后,当DOM准备就绪时,jQuery将调用该函数。
这不会创建一个文档就绪处理程序。jQuery的$()
函数根据您传递给它的内容执行不同的操作,在本例中,您传递的是undefined
。
内部匿名函数表达式:
(function () {
alert('I''m ready!')
}())
由于后面有()
,立即执行,然后将其返回值传递给$()
-它没有显式返回任何内容,因此返回值为undefined
(如上所述)。
如果你真的想在文档准备好后发出警报,请删除()
,如下所示:
$(function () {
alert('I''m ready!')
});
$(function() {
console.log( "ready!" );
});
是的缩写
$( document ).ready(function() {
console.log( "ready!" );
});
看看这个http://learn.jquery.com/using-jquery-core/document-ready/
相关文章:
- JavaScript执行暂时挂起页面
- 页面在我的javascript执行后重新加载,我不希望它这样做
- 如何在使用jQuery.html()时防止javascript执行
- 如何打开一个新窗口或选项卡,并将其提供给javascript执行
- 如何在Ajax加载新内容时停止JavaScript执行
- 如何使用xpath和Javascript执行器打印文本
- cakehp2.x用javascript执行控制器
- 如何在不使用javascript执行的情况下为函数分配参数
- Javascript执行顺序错误
- Javascript执行顺序和回调
- 如何在Javascript执行后防止浏览器锁定
- JavaScript执行从函数声明开始,而不是从$(document).ready()开始
- 在asp.net页面中显示javascript执行过程中的加载图标
- 基于浏览器窗口大小的条件 JavaScript 执行
- 使用 JavaScript 执行一行 PHP(不包括 PHP 文件)
- Dom 解析和 JavaScript 执行
- 为什么通过javascript执行php可以工作
- JavaScript执行路径
- 从javaScript执行服务器端代码
- 如何使用Javascript执行客户端web抓取