我一直在做一个程序,我想知道像这样启动两个函数之间的区别:
$(function () {
//content
});
和
function Name () {
//content
}
另外,为什么我不能说出第一个例子?我尝试将第一个示例更改为第二种类型,并且该功能完全停止工作。我在第一个示例中使用了 jQuery,一切都很好,但是在另一个示例中,该函数停止工作。
那么有什么区别呢?
我一直在做一个程序,我想知道像这样启动两个函数之间的区别:
$(function () {
//content
});
和
function Name () {
//content
}
另外,为什么我不能说出第一个例子?我尝试将第一个示例更改为第二种类型,并且该功能完全停止工作。我在第一个示例中使用了 jQuery,一切都很好,但是在另一个示例中,该函数停止工作。
那么有什么区别呢?
$(function () {});
这是快捷方式$(document).ready(function(){});
而这:
function Name () {
//content
}
是标准的javascript函数。
第一个是用于 jQueryready
事件的函数表达式,而第二个是函数。
using$(function(){...});
是$(document).ready(function(){...});
.
该ready
事件在文档完成加载时发生,因此事件处理程序将自动运行。除非您调用常规函数,否则它根本不会运行。
您可以自然地使用常规函数而不是事件处理程序的函数表达式:
function readyHandler() {
...
}
$(readyHandler); // or $(document).ready(readyHandler);
可以命名函数表达式,例如:
var x = function y() { ... };
但是,函数表达式的名称(y
在示例中)不是全局的,它只能在函数本身内部使用。此外,不同浏览器的具体实现方式不同,因此您应该避免使用它。
第一个是所谓的匿名函数。它在文档就绪事件上执行
$(document).ready(...);
并且是 jQuery 约定。由于您不能直接调用它,因此它没有/不需要名称。
第二个版本是一个标准函数,您可以随时按名称调用。
如果您将第一个符号更改为第二个符号,它将不再在文档就绪时自动运行。安全的方法是将“worklaod”移动到具有第二个符号的函数中,并使用第一个符号创建一个调用该函数的行。这样你就拥有了两全其美:一个单独的可调用函数和简单的自动执行。
第一个:
$(function () {
//content
});
正在向jQuery对象$传递一个匿名函数,相当于$(document).ready(function(){});
第二个只是一个名为Name
.