
jQuery源码分析
文章平均质量分 91
Junli_1413
这个作者很懒,什么都没留下…
展开
-
jQuery源码学习(6)-Sizzle选择器(2)
1、CSS选择器的位置关系:四种关系:"+" 紧挨着的兄弟关系;">" 父子关系;" " 祖先关系;"~" 之后的所有兄弟关系 <div id="grandfather"> <div id="father"> <div id="child1"><原创 2018-05-17 01:06:30 · 427 阅读 · 0 评论 -
jQuery源码分析(14)-DOM操作图示
其中,分析的2.0.3版本并没有jQuery.clean()函数,但是domManip()函数中由html字符串转化为DOM结构的过程与clean函数的处理过程类似,所以可以借鉴一下。来源:http://www.cnblogs.com/nuysoft/archive/2012/01/10/2318204.html...原创 2018-05-28 23:29:08 · 160 阅读 · 0 评论 -
jQuery源码学习(11)-属性方法解析和钩子hook
1、jQuery提供了一些快捷函数来对dom对象的属性进行存取操作。实例方法有:jQuery.fn.extend({ attr removeAttr prop removeprop addClass removeClass toggleClass hasClass val});静态方法有:jQuery.extend({ ...原创 2018-05-22 22:41:52 · 488 阅读 · 0 评论 -
jQuery源码分析(13)-事件绑定(2)
针对事件处理,我们可以拆分2部分:一个事件预绑定期一个事件执行期一、事件预绑定期1、jQuery.fn.on函数原创 2018-05-26 22:03:22 · 396 阅读 · 0 评论 -
jQuery源码学习(5)-Sizzle选择器(1)
1、常见的选择器:#test表示id为test的DOM节点.aaron 表示class为aaron的DOM节点nav>li 表示在nav内部子li的样式,而不是所有的后代元素,只是往下一层li的样式。nav+p 表示nav类相邻的p元素的属性,其他的p元素不受影响。nav[title] 表示nav的title属性的样式。nav[rel='active'] 表示nav类的属性rel为activ...原创 2018-05-16 01:19:10 · 882 阅读 · 0 评论 -
jQuery源码学习(10)-回溯end()和addBack()
1、问题发现:父元素ul,嵌套了li节点, 我们现给li绑定一个事件:<ul id="aaron"> parent <li>child</li></ul>这个很简单找到ul下面的li,绑定即可:var aaron = $("#aaron"); aaron.find('li').click(function(){ ...原创 2018-05-21 23:22:15 · 233 阅读 · 0 评论 -
jQuery源码学习(12)-事件绑定(1)
1、javaScript传统的事件处理给某一个元素绑定了一个点击事件,传入一个回调句柄处理:element.addEventListener('click',doSomething,false);但是如果页面上有几百个元素需要绑定,那需要绑定几百次,这样就可以知道传统绑定方法存在的问题:大量的事件绑定,性能消耗,而且还需要解绑(IE会泄漏);绑定的元素必须要存在;后期生成的HTML会没有事件绑定,...原创 2018-05-26 19:53:37 · 255 阅读 · 0 评论 -
jQuery源码学习(4)-变量解析及工具函数
点开jQuery的核心代码,可以看到其前面定义的很多变量都由正则表达式赋值(觉得想出那么难的正则表达式,都是反人类的存在),这也是我在jQuery学习中插入正则表达式学习的目的:对正则表达式感兴趣的可以前往...原创 2018-05-15 21:09:07 · 557 阅读 · 0 评论 -
jQuery源码学习(3)-构造jQuery对象
1、源码结构先看总体结构,再做分解:(function( window, undefined ) { // 构建jQuery对象 //在jQuery原型中定义init这个工厂方法,用于jQuery对象的实例化,是为了避免用jQuery自身实例化的时候造成死循环。 //init放入原型中,是因为实例this只与原型有关系 // jQuery框架分隔作用域的...原创 2018-05-14 23:49:17 · 592 阅读 · 2 评论 -
jQuery源码学习(9)-数据缓存
jQuery中有三种添加数据的方法,$().attr()、$().prop()、$().data()。但是前面两种是用来在元素上添加属性的,只适合少量的数据,比如:title,class,name等。对于json这种数据量大的,就适合用data方法来添加,而data方法就是jQuery缓存机制最重要的方法。1、历史背景: jQuery从1.2.3版本引入数据缓存系统,主要的原因是最初...原创 2018-05-21 00:11:24 · 273 阅读 · 0 评论 -
jQuery源码学习(8)-Deferred
1、问题提出 JavaScript编程几乎总是伴随着异步操作,传统的异步操作会在操作完成之后,使用回调函数传回结果,而回调函数中则包含了后续的工作。这也是造成异步编程困难的主要原因:我们一直习惯于“线性”地编写代码逻辑,但是大量异步操作所带来的回调函数,会把我们的算法分解地支离破碎。此时我们不能用if来实现逻辑分支,也不能用while/for/do来实现循环,更不用提异步操作之间的组...原创 2018-05-20 21:35:14 · 168 阅读 · 0 评论 -
jQuery源码学习(2)-正则表达式
由于jQuery源码中涉及到大量正则表达式,可以写篇博客整理正则表达式。1、语法1.1定义正则表达式(regular expression)是一个描述字符模式的对象,ECMAScript的RegExp 类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子...原创 2018-05-13 22:11:22 · 601 阅读 · 0 评论 -
jQuery源码学习(1)- 整体架构
学习版本:jQuery2.0.3学习博客链接:艾伦Aaron和nuysoft源码github地址:https://github.com/junzizaixi/jQuery-.git1、整体架构jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作。1.1自调用匿名函数打开jQuery源码,首先你会看到这样的代码结构:(function(window,undefined){ //j...原创 2018-05-13 22:10:51 · 262 阅读 · 0 评论 -
jQuery源码学习(7)-Callbacks
jQuery.Callbacks()是在版本1.7中新加入的。它是一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。原创 2018-05-18 23:41:09 · 245 阅读 · 0 评论 -
使用jQuery写插件
jQuery一直在用,但是却没有自己写过插件,看了几篇博客,想整理一下。jQuery编写插件的方式: 接下来分别举例介绍它们:1、类级别的静态开发就是给jQuery添加静态方法。首先创建classDev.js文件,//1、直接给jQuery添加全局函数jQuery.myAlert1 = function(str1){ alert(str1);};//2、使用e...原创 2018-08-17 11:59:39 · 335 阅读 · 0 评论