jQuery.holdReady(hold)的使用简介

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,jquery插件)