使用CDN版的jQuery
用托管在公共CDN(Content Delivery Network,内容分发网络)上的jQuery库,CDN是一种内容分发网络,当用户请求其数据时,CDN智能的分配离用户最近的服务器提供服务。用户体验更好,用户列蓝旗很可能缓存了来自其他网站的同一个jQuery库,这意味着用户很可能不必真的向CDN服务器发送请求文件(而是直接从缓存中读取)。
百度静态资源公共库 http://cdn.code.baidu.com/
360CDN http://libs.useso.com/
BootCDN http://www.bootcdn.cn/
1
2
3
4
5
6
7
8
9
10
|
<script> if (!window.jQuery) {
var script = document.createElement( 'script' );
script.src = './js/jquery.min.js' ;
document.body.appendChild(script);
} </script> |
条件注释
利用条件注释,如果是比IE9更老的IE浏览器,就加载1.0版本,否则就加载2.0版本。
1
2
3
4
5
6
|
<!--[ if lt IE 9]>
<script src= "http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js" type= "text/javascript" ></script>
<![endif]--> <!--[ if gte IE 9]><!-->
<script src= "http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type= "text/javascript" ></script>
<!--<![endif]--> |
移交$控制权
可以定义一个变量,将noConflict方法返回的值赋给这个变量即可。
1
|
var jq = jQuery.onConflict();
|
等待DOM加载完成
1
2
3
|
$(document).ready( function (){
}); |
1
2
3
|
$( function (){
}); |
延迟ready事件的触发时间
1
2
3
4
5
6
7
8
|
$.holdReady( true );
$(document).ready( function (){
}); setTimeout( function (){
//
$.holdReady( false );
},5000); |
jQuery对象与Dom对象互转
将Dom对象传给$(),即可得到jQuery对象,并且可以使用类似数组的操作方法length,size()获取类数组长度。
each()方法允许我们定义一个回调函数,迭代处理jQuery对象中所有DOM对象。
1
2
3
|
$().each( function (index, elem){
}); |
get(index)将jQuery对象转换成Dom对象。