有时我创建一个函数,然后再调用它。

例子:

function example { alert('example'); }
example(); // <-- Then call it later

不知何故,有些函数不能被调用。我必须在里面调用这些函数:

$(function() { });

$(function() {});And (function() {});意思是,它们的区别/目的是什么?


当前回答

我想你可能把Javascript和jQuery方法搞混了。纯Javascript是这样的:

function example() {
}

这种性质的函数可以在任何时间、任何地点调用。

jQuery(一个基于Javascript的库)内置了一些函数,这些函数通常需要在调用DOM之前完全呈现。完成时的语法是:

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

jQuery函数,前缀是$或jQuery,通常在该方法中调用。

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

该块的伪代码是:

当文档对象模型$(document)为ready .ready()时,调用下面的函数function(){}。在该函数中,检查页面$('li')上的所有<li>,并使用jQuery方法.CSS()将CSS属性“color”设置为值“red”.CSS('color', 'red');

其他回答

我想你可能把Javascript和jQuery方法搞混了。纯Javascript是这样的:

function example() {
}

这种性质的函数可以在任何时间、任何地点调用。

jQuery(一个基于Javascript的库)内置了一些函数,这些函数通常需要在调用DOM之前完全呈现。完成时的语法是:

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

jQuery函数,前缀是$或jQuery,通常在该方法中调用。

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

该块的伪代码是:

当文档对象模型$(document)为ready .ready()时,调用下面的函数function(){}。在该函数中,检查页面$('li')上的所有<li>,并使用jQuery方法.CSS()将CSS属性“color”设置为值“red”.CSS('color', 'red');

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

只是jQuery的简写

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

它的设计目的是确保一旦页面的所有DOM元素准备就绪,函数就会被调用。

然而,我不认为这是你的问题-你能澄清你的意思是'某种程度上,一些函数不能被调用,我必须调用这些函数内部'吗? 也许可以发布一些代码来显示什么没有按预期工作?

编辑:重新阅读你的问题,这可能是你的函数在页面加载完成之前运行,因此不会正确执行;将它放在$(function)中确实可以解决这个问题!

下面是一个jQuery函数调用:

$(...);

这是“jQuery函数”。$是一个函数,$(…)是你调用的那个函数。

您提供的第一个参数如下:

function() {}

参数是您指定的函数,$函数将在DOM完成加载时调用所提供的方法。

这是$(document).ready()的快捷方式,它在浏览器完成加载页面时执行(这里的意思是“当DOM可用时”)。见http://www.learningjquery.com/2006/09/introducing-document-ready。如果您试图在浏览器完成加载页面之前调用example(),它可能无法工作。

它只是$(document).ready()的缩写,如下所示:

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

有时您必须使用它,因为您的函数在DOM完成加载之前正在运行。

一切都在这里解释:http://docs.jquery.com/Tutorials:Introducing_$(document).ready()