【jquery源码分析(1)LIFE函数】教程文章相关的互联网学习教程文章

jQuery 2.0.3 源码分析之core(一)整体架构

拜读一个开源框架,最想学到的就是设计的思想和实现的技巧。 废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过, 不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery又给扫一遍 我也不会照本宣科的翻译源码,结合自己的实际经验一起拜读吧! github上最新是jquery-master,加入了AMD规范了,我就以官方最新2.0.3为准 整体架构 jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作、 例如:代码如下:...

jQuery插件-jRating评分插件源码分析及使用方法【图】

该插件被广泛应用于各种需要评分的页面当中,今天作为学习,把源码拿出来分析一下,顺便学习其使用方法。 一、插件使用一览。 代码如下:<div> <div>第一个例子</div> <div id="16_1" class="myRating"></div> </div> 代码如下:<link href="Script/jRating/jRating.jquery.css" rel="stylesheet" type="text/css" /> <script src="Script/jquery-1.7.min.js" type="text/javascript"></script> <script src="Script/jRating/jRat...

jQuery源码分析-05异步队列 Deferred 使用介绍

5. 异步队列 Deferred 5.1 概述 异步队列是一个链式对象,增强对回调函数的管理和调用,用于处理异步任务。 异步队列有三种状态:初始化(unresolved),成功(resolved),失败(rejected)。 执行哪些回调函数依赖于状态。 状态变为成功(resolved)或失败(rejected)后,将保持不变。 回调函数的绑定可以是同步,也可以是异步的,即可以在任何时候绑定。 (本节中的 绑定 注册 增加 具有相同的含义) 5.2 关键方法 先看看jQuer...

jQuery源码分析-01总体架构分析

1. 总体架构 1.1 自调用匿名函数 self-invoking anonymous function 打开jQuery源码,首先你会看到这样的代码结构: 代码如下:(function( window, undefined ) { // jquery code })(window); 1. 这是一个自调用匿名函数。什么东东呢?在第一个括号内,创建一个匿名函数;第二个括号,立即执行 2. 为什么要创建这样一个“自调用匿名函数”呢? 通过定义一个匿名函数,创建了一个“私有”的命名空间,该命名空间的变量和方法,不会...

jQuery源码分析-02正则表达式 RegExp 常用正则表达式

作者:nuysoft/JS攻城师/高云 QQ:47214707 EMail:nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接。 后文预告:jQuery中的正则表达式分析 2.4 常用正则表达式 在网上找到一篇广为流传的文章《常用正则表达式》,逐一分析,不足地方进行补充和纠正。 代码如下:常用的数字正则(严格匹配) 正则 含义 ^[1-9]\d*$ 匹配正整数 ^-[1-9]\d*$ 匹配负整数 ^-?[1-9]\d*$ 匹配整数 ^[1-9]\d*|0$ 匹配非负整...

jQuery源码分析-03构造jQuery对象-源码结构和核心函数

作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 毕竟是边读边写,不对的地方请告诉我,多多交流共同进步。本章还未写完,完了会提交PDF。 前记: 想系统的好好写写,但是会先从感兴趣的部分开始。 近期有读者把PDF传到了百度文库上,首先感谢转载和传播,但是据为已有并设置了挺高的财富值才能下载就不好了,以后我整理好了会传到文库上。请体谅一下。 3. 构造jQuery对象 3.1 源码结构 先看看总体结构,再做分解: ...

jQuery源码分析-04 选择器-Sizzle-工作原理分析

作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接。 在分析Sizzle源码之前,先整理一下选择器的工作原理 先明确一些选择器中用到的名词,后边阅读时不会有歧义: 选择器表达式: "div > p" 块表达式: "div" "p" 并列选择器表达式: "div, p" 块分割器: Sizzle中的chunker正则,对选择器表达式从左向右分割出一个个块表达式 查找器: 对块表达式进行查找,...

jQuery源码分析-03构造jQuery对象-工具函数

作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接。 读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF等本章写完了发布。 jQuery源码分析系列的目录请查看 http://nuysoft.iteye.com/blog/1177451,想系统的好好写写,目前还是从我感兴趣的部分开始,如果大家有对哪个模块感兴趣的,建议优先分析的,可以告诉我,一起学习。 3.4 其他静态工具函...

jQuery 源码分析笔记(6) jQuery.data

data部分的代码从1381行开始。最开始的几行关键代码: 代码如下:jQuery.extend({ // 存储数据的地方,关键实现核心 cache: { }, // 分配ID用的seed uuid: 0, // 为了区别不同的jQuery实例存储的数据,使用前缀+jQuery版本号+随机数作为Key expando: "jQuery" + (jQuery.fn.jquery + Math.random()).replace(/\D/g, ""), // 以下元素没有Data:embed和applet(这玩意还活着么),除了Flash之外的object。 noData: { "embed": true,...

jQuery 源码分析笔记(7) Queue

每个Element可以拥有多个队列,但是基本上都只使用到一个,即默认的fn队列。队列允许一系列函数被异步地调用而不会阻塞程序。例如:$("#foo").slideUp().fadeIn();其实这个就是我们大家常用的链式调用,实际上这是一个Queue。所以队列和Deferred地位类似,是一个内部使用的基础设施。当slideUp运行时,fadeIn被放到fx队列中,当slideUp完成后,从队列中被取出运行。queue函数允许直接操作这个链式调用的行为。同时,queue可以指定队...

jQuery 源码分析笔记(5) jQuery.support

其中jQuery.browser已经提供了根据UserAgent检测的浏览器信息。而jQuery.support 使用特性检测来检查浏览器的功能以及Bug。 和文档一样,首先说明一下,这个模块是很底层的代码,基本不需要在日常开发中使用,但是插件的开发者更需要。因为插件需要兼容各个浏览器。首先看一下 support模块提供了哪些浏览器特性的检测,以下结果是在Chrome 13 Dev下看到的结果。根据浏览器的不同,这里的成员可能会有变化。(PS:再次吐槽IE,大部分...

jQuery 源码分析笔记(3) Deferred机制

Deferred把回调函数注册到一个队列中,统一管理,并且可以同步或者异步地调用这些函数。jQuery.Deferred()用来构造一个Deferred对象。该对象有状态值,共有三种: Rejected, Resolved和初始状态。其中Resolved表示该操作成功完成了,而Rejected 则表示出现了错误,调用失败。Deferred对象的主要成员如下: done(callback): 注册一个callback函数,当状态为resolved时被调用。 * fail(callback): 注册一个callback函数,当状态为reje...

jQuery 源码分析笔记(4) Ready函数

这个功能在 jQuery的文档中提到了三种等价的形式: 代码如下:// 定义在jQuery.fn.ready $(document).ready(handler); // 和上一个是同一个,不推荐 $().ready(handler); // 单独在jQuery对象中处理 $(handler); // 以上这个形式的定义: if(jQuery.isFunction(selector) { return rootjQuery.ready(selector); } 因此实际上都归结与一个形式:jQuery.fn.ready(fn)。定义如下: 代码如下:ready: function(fn) { // 绑定事件到DOM...

jQuery 源码分析笔记(2) 变量列表

_jQuery = window.jQuery; _$ = window.$; 这两个变量是jQuery唯一使用的两个全局变量。在jQuery.noConflict()函数中,会把这两个变量恢复回去。 对于浏览器检测,jQuery使用的是检查UserAgent,而没有使用特性检测。 rwebkit = /(webkit)[ \/]([\w.]+)/, ropera = /(opear)(?:.*version)?[ \/](\w+)/, rmsie = /(msie) ([\w.]+)/, rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, 初始化函数init jQuery对JS对象的处理比较绕,而最终...

jQuery源码分析之Event事件分析

对于事件的操作无非是addEvent,fireEvent,removeEvent这三个事 件方法。一般lib都会对浏览器的提供的函数做一些扩展,解决兼容性内存泄漏等问题。第三个问题就是如何得到domReady的状态。   6.1 event的包裹   浏览器的事件兼容性是一个令人头疼的问题。IE的event在是在全局的window下, 而mozilla的event是事件源参数传入到回调函数中。还有很多的事件处理方式也一样。   Jquery提供了一个 event的包裹,这个相对于其它的li...