下面是对JQuery的整体结构的梳理,之后的代码解析也都会按照这个格式依次向下走
21-94 定义了一些变量和函数
96-283 为JQuery对象添加的属性和方法
285-347 JQuery.extend()方法
349-817 扩展了一些工具方法,通过JQuery.extend()
在JQuery中为我们体中、功了两种操作方法
第一种是$().text()类型
第二种是$.trim()
第一种方法叫做JQuery的实例方法,只能JQuery对象使用
第二种方法也叫做工具类方法,工具类方法可以直接用于原生对象上,可以视作是函数$上拓展的方法,工具类方法可视作是JQuery的底层方法,JQuery很多实例方法都是通过调用工具类方法来实现的
877-2856 完成sizzle(选择器)功能,JQuery的sizzle是独立的,可以单独下载
2880-3042 完成了callback方法,JQuery的回调对象,用于统一管理函数
fn=$.callvack();
fn_1=function(){alert(1)};
fn_2=function(){alert(2)};
fn.add(fn_1);
fn.add(fn_2);
fn.fire();
3043-3183 完成$.Deferred()方法,用于对异步函数进行统一管理
var def=$.Deferred();
setimeout(function(){
alert(1);
def.resolve();
return def;
})
def.done(function(){
alert(2)
})
3184-3295 完成support用于功能检测的方法,例如我们在兼容浏览器时去检测浏览器是否存在某个功能,是否需要对某个功能做兼容,在最开始时我们是通过去判断浏览器的版本来做兼容
navigator.userAgent
但是随着浏览器的迭代的不断加快,我们开始使用功能检测,例如我们在写一个checkbox/radio时,它的默认值是'on',但是在老版本浏览中该默认值是 ' '
support.checkOn = input.value !== "";
3308-3652 data()方法的实现,该方法主要用于数据的缓存
3652-3797 实现queue,该方法主要用于队列 管理,可以理解为对函数执行顺序的管理
$('div').animate({'top':'1000'});
$('div').animate({'left':'1000'});
//那么在页面中执行的动画顺序一定是元素先向上移动,然后向左移动,在JQuery中实现该效果就是在开始时使用queue将动画排序,在运行时让动画按照顺序入队,在执行完成之后调用deququ让其出队后再继续执行下一个动画
3803-4299 实现如attr()、val()等元素属性操作方法
4300-5128 on()、trigger()等事件操作的实现
5140-6057 DOM操作方法的实现,如append()、find()
6058-6620 样式操作方法的实现,如css()
6621-7854 提交数据和AJAX方法的实现,包括load()等
7855-8584 运动方法的实现,主要animate(),包括如show()等
8588-8792 offset()等位置与尺寸的方法
8804-8821 JQuery支持模块化的模式