jQuery DOM ready and JavaScript execution
以下剪辑是如何工作的?
1 2 3 | $((function () { alert('I''m ready!') }())); |
我得到它,它:
How does the following snipped work?
可以说,事实并非如此。
让我们使用中间变量将代码正在做的两件事分开:
1 2 3 4 5 6 7 | // First var x = (function () { alert('I''m ready!') }()); // Then: $(x); |
第一位定义一个函数并立即调用它,导致显示
然后第二个位调用传递
你可能意味着这个:
1 2 3 | $(function () { alert('I''m ready!') }); |
请注意,调用函数后没有
1 2 3 4 5 6 7 | // First var x = function () { alert('I''m ready!') }; // Then: $(x); |
这里发生的是函数被定义而不被调用;对该函数的引用存储在
然后我们调用
所以这段代码:
1 2 3 | $(function () { alert('I''m ready!') }); |
首先定义一个函数(不调用它),然后将对该函数的引用传递给
稍后,当DOM准备就绪时,jQuery将调用该函数。
这不会创建文档就绪处理程序。 jQuery的
内部匿名函数表达式:
1 2 3 | (function () { alert('I''m ready!') }()) |
由于后面的
如果您确实想在文档准备好之后执行该警报,请删除
1 2 3 | $(function () { alert('I''m ready!') }); |
1 2 3 | $(function() { console.log("ready!" ); }); |
是简写
1 2 3 | $( document ).ready(function() { console.log("ready!" ); }); |
看到这个http://learn.jquery.com/using-jquery-core/document-ready/