在jQuery ready事件逻辑中:
// Catch cases where $(document).ready() is called after the
// browser event has already occurred.
if ( document.readyState === "complete" ) {
// Handle it asynchronously to allow scripts the opportunity to delay ready
return setTimeout( jQuery.ready, 1 );
}
你能否解释一下这句话:“异步处理它,让脚本有机会延迟准备”。
我不明白脚本是什么以及为什么延迟准备?
答案 0 :(得分:6)
如果就绪回调(触发readyList
)会立即触发,那么一旦DOM准备好holdReady
函数,就无法执行它。
jQuery.holdReady( hold )
描述:保存或释放jQuery准备事件的执行。
$。holdReady()方法允许调用者延迟jQuery的ready事件。
这个高级功能通常由动态脚本加载器使用,它们希望在允许就绪事件发生之前加载其他JavaScript(如jQuery插件),即使DOM可能已准备就绪。
必须在文档的早期调用此方法,例如在jQuery脚本标记之后。在ready事件已经触发后调用此方法将不起作用。
答案 1 :(得分:0)
它与$.holdReady()
有关,它允许您延迟就绪事件。用例可能是您希望在运行所有其他脚本之前执行一些初始化操作。您可以延迟准备,直到完成初始化。