jquery中ready()函数执行的时机和window的load事件比较
1个回答
展开全部
jquery的ready()实现的是
DOMContentLoaded
事件,DOMContentLoaded与window
load事件的区别
简单的说ready()是在文档加载完成就会触发,此时图片等资源可能还没有完全加载,
load是在所有资源都加载完成后才会触发
看下ready函数的代码就什么都清楚了。下面的代码加上了注释:
//
Handle
when
the
DOM
is
ready
ready:
function()
{
//
Make
sure
that
the
DOM
is
not
already
loaded
if
(
!jQuery.isReady
)
{
//
Make
sure
body
exists,
at
least,
in
case
IE
gets
a
little
overzealous
(ticket
#5443).
if
(
!document.body
)
{
return
setTimeout(
jQuery.ready,
13
);
}
//
Remember
that
the
DOM
is
ready
jQuery.isReady
=
true;
//
If
there
are
functions
bound,
to
execute
if
(
readyList
)
{
//
Execute
all
of
them
var
fn,
i
=
0;
while
(
(fn
=
readyList[
i++
])
)
{
fn.call(
document,
jQuery
);
}
//
Reset
the
list
of
functions
readyList
=
null;
}
//
Trigger
any
bound
ready
events
if
(
jQuery.fn.triggerHandler
)
{
jQuery(
document
).triggerHandler(
"ready"
);
}
}
},
以上所述就是本文的全部内容了,希望大家能够喜欢。
DOMContentLoaded
事件,DOMContentLoaded与window
load事件的区别
简单的说ready()是在文档加载完成就会触发,此时图片等资源可能还没有完全加载,
load是在所有资源都加载完成后才会触发
看下ready函数的代码就什么都清楚了。下面的代码加上了注释:
//
Handle
when
the
DOM
is
ready
ready:
function()
{
//
Make
sure
that
the
DOM
is
not
already
loaded
if
(
!jQuery.isReady
)
{
//
Make
sure
body
exists,
at
least,
in
case
IE
gets
a
little
overzealous
(ticket
#5443).
if
(
!document.body
)
{
return
setTimeout(
jQuery.ready,
13
);
}
//
Remember
that
the
DOM
is
ready
jQuery.isReady
=
true;
//
If
there
are
functions
bound,
to
execute
if
(
readyList
)
{
//
Execute
all
of
them
var
fn,
i
=
0;
while
(
(fn
=
readyList[
i++
])
)
{
fn.call(
document,
jQuery
);
}
//
Reset
the
list
of
functions
readyList
=
null;
}
//
Trigger
any
bound
ready
events
if
(
jQuery.fn.triggerHandler
)
{
jQuery(
document
).triggerHandler(
"ready"
);
}
}
},
以上所述就是本文的全部内容了,希望大家能够喜欢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询