Javascript 为什么要将jQuery代码嵌入$(function())?

Javascript 为什么要将jQuery代码嵌入$(function())?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我使用了不同的jQuery插件,在某些情况下,在我将它们嵌入$(function({…}))之前,它们不能正常工作(或者根本不能工作) 例如,插件: $('#DateTextBox').datetimepicker(); 不起作用,即使在插件网站中,它是以完全相同的形式使用的。 将它放在$(function())中,它可以完美地工作: $(function () { $('#DateTextBox').datepicker();

我使用了不同的jQuery插件,在某些情况下,在我将它们嵌入
$(function({…}))
之前,它们不能正常工作(或者根本不能工作)

例如,插件:

     $('#DateTextBox').datetimepicker();
不起作用,即使在插件网站中,它是以完全相同的形式使用的。 将它放在$(function())中,它可以完美地工作:

$(function ()
        {
            $('#DateTextBox').datepicker();
        });
语句“$(function())”到底带来了什么? 我试图在同一个jQuery网站上搜索,但没有找到答案

语句“$(function())”到底带来了什么

它确保在页面完成加载之前,代码不会被执行。这是英语的简写

$(document).ready(function () {
  // ...
});

阅读:

如果我没记错的话,
$(函数(){})
$.ready(函数(){})
相同,因此代码只会在页面准备好时执行

查看文档了解,因为它的行为与标准的
load
事件不完全相同

$(function ()
意味着

$(document).ready(function() {

它等待加载dom

这并不是因为你错误地使用了插件。您可能在文档准备就绪之前、脚本加载之前或代码顺序出现类似问题之前调用它们

$(function() {
});
相当于

$(document).ready(function() {
});
虽然
document.ready
是大多数情况下的正确解决方案,但也要确保:

  • 在加载所有其他插件之前加载jquery
  • 在脚本开始执行之前,页面已准备就绪

  • 如果可能的话,按照YSlow的建议-加载所有脚本。

    现在,插件不工作的原因就清楚多了!谢谢。