有什么区别?:
$(function(){
});
是
$(document).ready(function() {
});
我知道他们等待组件加载,但想知道为什么它们的写法不同?
类似的英语 SO 问题:https ://stackoverflow.com/questions/2662778/what-is-the-difference-between-these-jquery-ready-functions
有什么区别?:
$(function(){
});
是
$(document).ready(function() {
});
我知道他们等待组件加载,但想知道为什么它们的写法不同?
类似的英语 SO 问题:https ://stackoverflow.com/questions/2662778/what-is-the-difference-between-these-jquery-ready-functions
官方没有区别:
您可以在来源中看到它:
但是,从技术上讲,根据具体情况可能会有一个不同之处:$(function()
如果 jQuery 没有正确加载,它将不会运行,而$(document).ready
它会更新:如评论中所述,
$(document).ready
如果未加载 jQuery,它也不会运行。要在不使用 jQuery 的情况下实现类似(但不相同)的效果,您可以使用window.onload
.这个答案是英文原文的翻译:https ://stackoverflow.com/a/2662783/4574 (最后一句不是原文)
看到问题是从2015年开始的。今天有很大的不同:
它已在 jQuery3 中被弃用,并且很可能在 jQuery4 中被弃用。
因此,为了使您的代码保持最新,建议立即开始使用它:
在我们所有的代码中。
jQuery API 中清楚地解释了这种变化:
总之: jQuery3 的推荐方法是:
您还可以咨询以下问题:
window.onload
和 和有什么不一样$(document).ready()
?document.ready
deprecated 是否也有变化window.load
?根据文档:
尽管:
如果它在 DOM 加载后执行,您的(通常是匿名的)函数将立即执行。
结论:
两种方法都是同义词。使用一个或另一个是你喜欢什么的问题。例如,我真的很喜欢第一个,因为正如他们所说,它是短暂的。
推荐:
建议您使用别名
jQuery
始终在您的插件或组件中获得所需的行为(无论您使用什么方法),示例:方法一:
方法二:
来源
这也是等价的:
个人建议默认使用方法
on
,如果是方法ready
,我建议不要使用,而是在知道资源(元素/变量,app.js)的情况下保持脚本/函数的执行顺序已经存在于当前上下文中,和/或在回调中执行那些相同的脚本/函数。