jQuery.holdReady(hold) 返回值类型boolean
jQuery.holdReady()方法允许jQuery的完成事件被该函数锁定。
这个高级特性的典型应用场合是动态载入脚本,比如jQuery插件等。
在附加的脚本载入完成前,即使页面已经准备好,jQuery的完成事件也不会被触发。
这个函数必须在页面的靠前部分被调用,比如在标签当中,jQuery载入下一行。
在完成事件被触发后调用此函数没有任何效果。
使用方法:首先调用.holdReady(true)[调用后完成事件将被锁定]。当准备好触发完成事件时,调用.holdReady(false)。需要注意的是,
可以对完成事件添加多个锁定,每个锁定对应一次$.holdReady(false)[解锁]调用。
jQuery的完成事件将在所有的锁定都被解除,并且页面也已经准备好的情况下被触发。
实际上就是为一些需要依赖动态脚本的代码加的一个安全锁,
当所需要的动态脚本加载完毕后再执行就绪事件,而不是在DOM树构建成功后执行。
文档介绍看完了,再来看看小例子
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="index.js"></script>
<title>Insert title here</title>
</head>
<body>
<input type="button" id="btn" value="呵呵">
</body>
</html>
然后有两个js文件
index.js
首先加载的是index.js
$.holdReady(true);//将holdReady改为ture,点击按钮就没有任何效果,改为false就可以是用来里面的js事件
$(function(){
$('#btn').click(function(){
alert(123);
});
});
下面写了两个js文件
index.js和hold.js
jsp中只加载index.js,在index.js里决定是否加载hold.js
代码如下:
//hold.js
$(function(){
alert('这是使用holdReady加载出来的');
});
//index.js
jQuery.holdReady(true)
$.getScript("hold.js", function() {
jQuery.holdReady(false);
});
加载hold.js的时候调用一个回调函数,将true改为false,这样就可以加载hold.js文件
本文介绍了jQuery中的holdReady方法,该方法允许开发者在动态加载脚本时锁定jQuery的完成事件,确保所有必需脚本加载完成后才触发就绪事件。文章通过实例展示了如何使用此方法来控制脚本加载顺序。
135

被折叠的 条评论
为什么被折叠?



