什么是$(function(){...})函数以及何时在以下示例中调用它?

时间:2010-01-17 13:01:11

标签: javascript jquery

我在Windows Server 2008 Enterprise中使用SharePoint Server 2007 Enterprise。我正在使用VSTS 2008 + C#+ .Net 3.5 + ASP.Net进行开发。我正在学习以下处理javascript的代码,我的混淆是$(function(){...}部分代码,什么时候会被调用,它的功能是什么?我没有看到任何代码调用这个函数。 / p>

<!doctype html>
<html lang="en">
<head>
    <title>Test</title>
    <link type="text/css" href="tabcontrol/themes/base/ui.all.css" rel="stylesheet" />
    <script type="text/javascript" src="tabcontrol/jquery-1.3.2.js"></script>
    <script type="text/javascript">
        $(function() {
            $("#tabs").tabs();
        });
    </script>
</head>
<body>

<div class="demo">

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">tab1</a></li>
        <li><a href="#tabs-2">tab2</a></li>
    </ul>
    <div id="tabs-1">
        <p>tab1 info</p>
    </div>
    <div id="tabs-2">
        <p>tab2 info</p>
    </div>
</div>

</div>

</body>
</html>
提前谢谢, 乔治

7 个答案:

答案 0 :(得分:9)

它来自您所包含的jQuery库:

<script type="text/javascript" src="tabcontrol/jquery-1.3.2.js"></script>

$jQuery函数的别名。

请参阅jQuery(callback) reference documentation

  

$(document).ready()的简写。

     

允许您绑定DOM文档加载完成后要执行的函数。此函数的行为与$(document).ready()类似,因为它应该用于在页面上包装依赖于准备运行的DOM的其他$()操作。虽然这个功能在技术上是可链接的 - 但实际上并没有太多用于链接它的功能。

有关详细信息,请查看Tutorials:Introducing $(document).ready()

答案 1 :(得分:6)

the document is ready时会调用它。它相当于:

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

Document.ready表示该页面已在客户端上完全加载。 WebParts是服务器端控件,将首先处理,以生成发送到客户端的html文档。因此,在document.ready客户端事件触发之前将处理webpart。

来自the Gecko docs

  

加载事件在文档末尾触发   装货过程。在这一点上,所有的   文档中的对象在   DOM,以及所有图像和子帧   已经完成加载。

答案 2 :(得分:2)

$(function(){

}); 

jQuery(Javascript库)的简写:

$(document).ready(function(){

});

这是你用<body onload="xxx">做的,但更复杂。您可以获得更全面的解释here

答案 3 :(得分:2)

这是jQuery中使用的简写,在我看来这是一个绝对不清楚和不必要的简写。不久前,我们曾写过:

$(document).ready(function() {
    $("#tabs").tabs();
});

现在我们也可以写这个来做上面的事情:

$(function() {
    $("#tabs").tabs();
});

传递给$(document).ready的函数在页面加载并且DOM准备就绪时执行,换句话说,文档已加载到内存中。此代码编写在jQuery中,这是一个使DOM操作更容易的Javascript库。

以上代码转换为普通Javascript:

window.onload = function() {
    $("#tabs").tabs();
};

其中window是表示页面window的全局对象。

答案 4 :(得分:2)

我不确定您为何标记了您的帖子“SharePoint”,但请注意,这不是在SharePoint网页上支持的。 您需要在堆栈上推送在页面加载上运行的脚本,SharePoint将执行它们。语法是:

_spBodyOnLoadFunctionNames.push("myOnloadFunction");

这将需要javascript fu:

function myOnloadFunction()
{
    $("#tabs").tabs();
}

可用,可以执行你的onload代码。

答案 5 :(得分:1)

这是一个jQuery调用,当文档加载时会调用它。

http://docs.jquery.com/Core/jQuery#callback

的更多信息

答案 6 :(得分:1)

该语法是

的别名
$(document).ready(function(){});

这个事件在jQuery中用于在DOM准备好后立即调用脚本。它就像window.onload,但不会等待所有图像在发射前完全加载。