我正在运行多个函数,我需要准备好文档。我对
的使用有疑问$(function()
{
funA();
});
1)以下哪项技术上是正确的:
(a)我推测,因为它的范围仅限于其大括号内的初始函数。
$(function()
{
funA(function()
{
$(function()
{
funB(function()
{
$(function()
{
funC();
});
});
});
});
});
VS
(b)我推测,因为它的范围适用于它的括号内的所有函数。
$(function()
{
funA(function()
{
funB(function()
{
funC();
});
});
});
(c)中
两者(请详细说明)。
2)如果没有使用回调,方法会有所不同吗?
答案 0 :(得分:1)
我想问题是" $(f);
如何运作"。
当调用$(f)
(或其完整形式$(document).ready(f)
)时,jQuery基本上会检查文档是否已经加载。
f()
会立即排队,以便在当前代码完成后执行。f
添加到jQuery检测到相应事件时要排队的函数列表。因此,将$(f)
嵌套在回调中是安全的,但不必要,因为顶级回调只能在事件发生后执行,并且嵌套回调函数不能比它传递的函数更快地执行。
* - 我说" safe-ish",因为$()
的回调从不立即执行但只排队;这可能会导致可能不需要的结果。
$(f);
g();
始终会在g()
之前执行f()
。这不适用于你的问题,但无论如何我都想指出它。