彻底弄懂jQuery事件原理二】的更多相关文章

上一篇说到,我们在最外层API的on,off,tiggler,triggerHandler调用的是event方法的add,remove和tirgger方法,本篇就来介绍event辅助类 \ 先放个图,这其实就是整个事件流程的过程: 1. add方法: add: function(elem, types, handler, data, selector) { var handleObjIn, eventHandle, tmp, events, t, handleObj, special, hand…
jQuery为我们提供了一个非常丰富好用的事件API,相对于浏览器自身的事件接口,jQuery有以下特点: 1. 对浏览器进行了兼容性处理,用户使用不需要考虑浏览器兼容性问题 2. 事件数据是保持在内部缓存中的,而不是保持在DOM节点上 3. 事件委托机制,提供了一个非常简单的事件委托使用方法 4. 自定义事件,不仅仅是浏览器事件,可以创建自定义事件 5. 辅助功能,比如命名空间,事件数据等等 那么下面就来看看jQuery是怎么实现的,首先扫一眼Event模块的源码结构: 总共900行,总共包括…
一.写在前头    接到某厂电话问什么是事件代理的时候,一开始说addEventListener,然后他说直接绑定新的元素不会报dom不存在的错误吗?然后我就混乱了,我印象中这个方法是可以绑定新节点的.后面才知道,原来他要考察的是事件委托(代理)的原理,他指的是未来还不清楚会创建多少个节点,所以没办法实现给他们注册事件. 二.事件委托(事件代理)的作用? 为了方便理解,我先把事件委托的作用写一下. 支持为同一个DOM元素注册多个同类型事件 可将事件分成事件捕获和事件冒泡机制 例子解析: 注册多个…
在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理又了解多少?今天这篇博文带领大家了解一下Base64的底层实现. 一.Base64的由来 目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一.在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输.那么,Base64到底起到什么作用呢? 在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会…
在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理又了解多少?今天这篇博文带领大家了解一下Base64的底层实现. Base64的由来 目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一.在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输.那么,Base64到底起到什么作用呢? 在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现…
在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理又了解多少?今天这篇博文带领大家了解一下Base64的底层实现. Base64的由来 目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一.在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输.那么,Base64到底起到什么作用呢? 在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现…
goroutine简介 golang语言作者Rob Pike说,"Goroutine是一个与其他goroutines 并发运行在同一地址空间的Go函数或方法.一个运行的程序由一个或更多个goroutine组成.它与线程.协程.进程等不同.它是一个goroutine". goroutine通过通道来通信,而协程通过让出和恢复操作来通信: goroutine 通过Golang 的调度器进行调度,而协程通过程序本身调度: 简单的说就是Golang自己实现了协程并叫做goruntine(本文称…
js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获 一.总结 一句话总结:他们是描述事件触发时序问题的术语.事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件.相反的,事件冒泡是自下而上的去触发事件.绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获.true,事件捕获:false,事件冒泡.默认false,即事件冒泡. 1.事件冒泡是什么? 先child,然后parent.事件的触发顺序自内向外,这就是事件冒泡. 2.事件捕获是什么? 先parent,然后…
第一篇 http://www.cnblogs.com/aaronjs/p/3444874.html 从上章就能得出几个信息: 事件信息都存储在数据缓存中 对于没有特殊事件特有监听方法和普通事件都用addEventListener来添加事件了. 而又特有监听方法的特殊事件,则用了另一种方式来添加事件. 本章分析的重点: 通过addEventListener触发事件后,回调句柄如何处理? 具体来说就是,如何委派事件的,用到哪些机制,我们如果用到项目上是否能借鉴? 涉及的处理: 事件句柄的读取与处理…
由于搬去敌台了,好久没来博客园,今天无意中翻到有“误认子弟”的评论,这里特意做个说明. 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jquery去展示了利用事件冒泡的例子有误,其实这部分就是“事件委托”,而当时的我并不知道,这一点在我很久之前的评论中纠正过. 归根结底,是当时的我对dom事件这个东西没有一个系统的认识.事件模型.事件流.event对象.事件代理/委托.甚至自定义事件,加起来才是dom事件的全貌,都理解了才能彻底弄懂.本想删除了事,但抱着尊重历史的态度(其实是…