我的application.js在外面有这个:

$(function() {
    // My functions are in here, and some of them even work.
}


我一直粘贴并粘贴,直到得到有用的东西为止,现在我正在认真学习jQuery。我知道有点落后。

上面的代码$(function() { }的目的是什么?

最佳答案

这是shortcut for

$(document).ready(function () {

});


这意味着一旦DOM完全加载,您的脚本便会运行。这意味着脚本中依赖于现有某些DOM节点的任何部分都可以使用。如果您的.js文件位于页面顶部,它将在DOM节点存在之前执行,这意味着您将尝试使用其中不存在的内容。 $(document).ready()允许您推迟执行代码,直到页面准备就绪为止。

举例来说,假设您有以下JavaScript,已将其加载到头部的script标签中:

$('a').click(function () {
    alert("You can't leave!!!");
    return false;
});


试图将单击处理程序添加到所有<a>标记中,但是还没有任何<a>标记,因此它不会执行任何操作。如果将其包装在$(document).ready()中,则如下所示:

$(document).ready(function () {
    $('a').click(function () {
        alert("You can't leave!!!");
        return false;
    });
});


现在,仅在文档准备就绪时才执行。

要回答标题中的问题,不,您不必将所有内容都包装在$(document).ready()中-只需依赖完全加载DOM的代码即可。

关于jquery - 我是否需要将application.js中的每个Javascript函数包装在$(function(){}中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4199203/

10-13 05:44