我的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/