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