有什么区别
$(function(){
});
Run Code Online (Sandbox Code Playgroud)
和
$(document).ready(function() {
});
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 56
此函数的行为与$(document).ready()类似,因为它应该用于包装其他$()
你可以在源代码中看到这个:
rootjQuery = jQuery(document);
...
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Run Code Online (Sandbox Code Playgroud)
Ray*_*nos 16
} else if (jQuery.isFunction(selector)) {
return rootjQuery.ready(selector);
}
Run Code Online (Sandbox Code Playgroud)
来自消息来源
调用会$(document).ready(selector)保存一些if语句.
虽然jQuery在$(document)内部缓存可能会$(f)更快.
这两者完全相同:使用您喜欢的任何形式.
也就是说,我个人总是使用扩展形式$(document).ready(function(){});,原因很简单,代码正在做什么是完全明显的.近似的想法是"自我记录代码".任何人来到后面的代码上会立即看到该代码是要在运行document的ready事件.使用简写形式,您必须依赖代码的读者理解其含义.
我们遇到过 IE9 不运行 $(function() {}); 中的函数的情况;以与 $(document).ready(function(){}) 相同的方式或时间;
在从查询字符串中读取信息并在屏幕上处理和显示该信息或使用它来处理表单时,这个问题引起了我们的注意。一旦信息被 $(function() 缓存,IE9 就会处理信息,并且用户刷新页面。但是在第一次运行时,没有任何工作正常。但是,一旦我们从 $(function(){}); 切换到 $( document).ready(),问题已解决。我们没有改变其他任何东西。
我非常期待不用测试 IE9 及更低版本的那一天。
它们实际上是相同的。没有不同。
这是本机的方式。
$(document).ready(function() {
// code
});
Run Code Online (Sandbox Code Playgroud)
这是以前的简写。
$(function() {
// code
});
Run Code Online (Sandbox Code Playgroud)