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 ...
随机推荐
- UML-如何使用GRASP进行对象设计?
1.GRASP有以下模式 2.创建者 问题:谁创建某类的新实例? 方案:(我认为) 聚集:物理模型下,由父类创建子类.(父类聚集了子类的集合) 包含:子类包含父类对象 专家模式:提供初始化数据的类来创 ...
- JavaScript—原生轮播和无缝滚动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java中常用的API(三)——缓冲区字符串
前两节中分别介绍了Object和String,这一节主要介绍StringBuffer和StringBuilder. StringBuffer 由于String是不可变的,所以导致String对象泛滥, ...
- 36. docker swarm docker secret 的使用和管理
1.secret management 的作用 用来存储 其他人不想看到 的数据 2.secret management 存在 swarm manager 节点 raft database 里. se ...
- WINSCP 使用笔记
前期准备: 1.官网下载:http://winscp.net/eng/docs/lang:chs 官网C#示例:http://winscp.net/eng/docs/library#csharp 当然 ...
- windows 安装Bitcoin Core使用
1.官网下载https://bitcoin.org/en/download 选择Windows 其他系统就选择对应的就好 2.双击安装完过后,进入bin目录,打开bitcoin-qt.exe运行,提 ...
- 吴裕雄--天生自然TensorFlow2教程:创建Tensor
import numpy as np import tensorflow as tf tf.convert_to_tensor(np.ones([2, 3])) tf.convert_to_tenso ...
- 处理Ajax请求跨域问题
ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”. CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resourc ...
- apk反编译安装工具
一.需要工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes.dex文件转化为.jar文件. jd- ...
- 题解-------CF1304E 1-Trees and Queries
传送门 题目大意 给你一棵无根树,然后询问Q次,每次把点$x$和点$y$连接,问你从点$a$到点$b$是否有一条长度为$k$的简单路径,每次询问完后会把新添加的边删除. 思路:树上LCA 题目跟201 ...