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

时间:2011-07-13 07:12:28

标签: javascript jquery jquery-plugins

我使用了不同的jQuery插件,在某些情况下,它们无法正常工作(或根本不工作),直到我将它们嵌入到$(function({ ... }))中。

例如插件:

     $('#DateTextBox').datetimepicker();

不起作用,即使在插件网站中它完全以相同的形式使用。 将它放在$(function())里面就可以完美地运行了:

$(function ()
        {
            $('#DateTextBox').datepicker();
        });

“$(function())”语句带来了什么? 我试图在同一个jQuery网站上搜索,但我找不到答案。

4 个答案:

答案 0 :(得分:5)

  

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

确保在页面加载完成之前,您的代码不会被执行。这是

的简写
$(document).ready(function () {
  // ...
});

阅读:http://api.jquery.com/ready/

答案 1 :(得分:4)

$(function ()

表示

$(document).ready(function() {

等待dom加载。

答案 2 :(得分:4)

并不是说你错误地使用了这些插件。您可能在文档准备好之前,或者在加载脚本之前调用它们,或者在代码顺序出现问题时调用它们。

$(function() {
});

相当于

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

虽然document.ready是适合大多数情况的正确解决方案,但也请确保:

  1. 在所有其他插件之前加载jquery
  2. 在您的脚本开始执行之前,您的页面已准备就绪。
  3. 如果可能,请遵循YSlow中的此建议 - 加载所有脚本at the end of your page

答案 3 :(得分:2)

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

查看ready function的文档,因为它的行为与标准的load事件完全不同。