jquery框架概览(一)
参照jQuery 2.0.3版本(http://files.cnblogs.com/files/snoy/jquery-2.0.3.js")来进行的源码分析
从代码的最外层可以看到是一个IIFE即自执行匿名函数
(function(window, undefined) {
})(window)
从代码的21~94行定义了一些变量和函数
重点分析下面的代码 (1)
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},
代码的8826行的代码(2)
window.jQuery = window.$ = jQuery;
通过上面(2)代码就把上面(1)jQuery保存起来的函数暴露给window对象了,就可以通过jQuery或者$来访问(1)的函数了
这就是对外提供的接口
代码的96~281给jQuery对象添加一些方法和属性
jQuery.fn=jQuery.prototype={
};
代码的285~347是jQuery继承的一些方法
jQuery.extend = jQuery.fn.extend = function() {
}
代码的349~818是jQuery扩展的一些工具方法类似于静态方法比如说$.trim()
jQuery.extend();
代码的877~2856是Sizzle CSS Selector复杂选择器(http://sizzlejs.com/)
代码的2880~3042是jQuery回调对象作用是函数的统一管理
jQuery.Callbacks=function(){};
代码的3043~3183是延迟对象作用是异步的统一管理
jQuery.extend({
Deferred;function(){},
when:function(){}
});
代码的3184~3295是对浏览器功能的检测,而不是去判断浏览器类型
jQuery.support=(function(support){})({});
代码的3308~3652是对数据data的缓存
代码的3653~3797是对queue的管理
jQuery.extend();
jQuery.fn.extend();
代码的3803~4299是对元素属性的操作
代码的4300~5128是事件操作的相关方法
代码的5140~6057是和DOM有关的操作
代码的6058~6620是元素CSS样式的操作
代码的6621~7854是form表单提交的功能(ajax,cors,load,getJson,getScript。。。)
代码的7785~8584是animate运动的操作
代码的8585~8792是位置和尺寸的操作
代码的8504~8821是jQuery支持模块化的方式
代码的8504~8827是jQuery对外提供的暴露接口
jquery框架概览(一)的更多相关文章
- jquery框架概览(二)
(function(window, undefined) { })(window) window对象作为参数传进闭包的好处 JavaScript 全局对象.函数以及变量均自动成为 window 对象的 ...
- 小谈Jquery框架
现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度.但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说 ...
- jQuery框架分析第一章: 第一个匿名函数
我的jQuery版本为1.7* 这个版本代码比之前的版本优化了很多,结构也清晰了不少,就用最新的吧. 打开jQuery源代码 首先你能看到所有代码被一个 (function(window,undefi ...
- jQuery框架的简单使用(H5)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 浅析jQuery框架与构造对象
这是一些分析jQuery框架的文字 面向的读者应具备以下要求 1.非常熟悉HTML 2.非常熟悉javascript语法知识 3.熟悉javascript面向对象方面的知识 4.熟练使用jQue ...
- Spring Framework 5.0.0.M3中文文档 翻译记录 Part I. Spring框架概览1-2.2
Part I. Spring框架概览 The Spring Framework is a lightweight solution and a potential one-stop-shop for ...
- 引用jquery框架后出错
问题描述:当引用了jquery框架后,页面的js不能正常工作. 后面我的解决办法:是因为在引用 jquery的框架时的代码为 <script type="text/javascript ...
- Jquery框架
现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度.但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说 ...
- jQuery框架-2.jQuery操作DOM节点与jQuery.ajax方法
一.jQuery操作DOM 内部插入操作: append(content|fn):向每个匹配的元素内部追加内容. prepend(content):向每个匹配的元素内部前置内容. 外部插入操作: af ...
随机推荐
- Python创建命令行应用的工具 tools for command line application in python
工具1:Docopt 地址:http://docopt.org/ 这个工具是根据模块的文档注释来确定参数的.注释分为两部分:Usage, option. \``` Usage: naval_fate ...
- JXCPC 试题册
JXCPC 试题册 Input file: standard input Output file: standard output Time limit: 1s Memory limit: 256 m ...
- 为什么在SSM中的dao层不用写@Repository注解
1. Mybatis 接口编程中dao 层接口没有注解和 为什么能被实例化为bean? 在Spring配置Mybatis的文件中我们可以看到如下代码: <bean class="or ...
- [Algo] 131. Deep Copy Linked List With Random Pointer
Each of the nodes in the linked list has another pointer pointing to a random node in the list or nu ...
- Spring-Boot 访问外部接口的几种方案总结
一.简介 在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求,针对这一需求目前存在着三种解决方案,下面将对这三种方案进行整理和说明. 二.Spring- ...
- Java中:>>>和>>区别
>>>表示不带符号向右移动二进制数,移动后前面统统补0:两个箭头表示带符号移动, 没有<<<这种运算符,因为左移都是补零,没有正负数的区别. 如 -12 的二进制为 ...
- Pytorch的19种损失函数
基本用法 12 criterion = LossCriterion() loss = criterion(x, y) # 调用标准时也有参数 损失函数 L1范数损失:L1Loss 计算 output ...
- python实现XML解析的三种方法
python实现XML解析的三种方法 三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合:二是xml.sax.*模块,它是SAX API的实 ...
- tc/traffic control 网络控制工具
第一个例子 增加延时 tc qdsic add dev enp0s3 root netem delay 200ms qdisc : queuing discipline, 当内核需要发送包到某个接口时 ...
- DocCms_2016 代码审计
0x00 结构浏览 按照代码审计的惯例,拿到这款cms之后首先浏览了一下目录结构,在基本了解之后,首先进入/index.php,这里包含了两个文件:/admini/config/qd-config.p ...