解密jQuery事件核心 - 绑定设计(一)
摘要:说起jQuery的事件,不得不提一下Dean Edwards大神 addEvent库,很多流行的类库的基本思想从他那儿借来的jQuery的事件处理机制吸取了JavaScript专家Dean Edwards编写的事件处理函数的精华,使得jQuery处理事件绑定的时候相当的可靠。在预留退路(graceful degradation),循序渐进以及非入侵式编程思想方面,jQuery也做的非常不错事件的流程图总的来说对于JQuery的事件绑定在绑定的时候做了包装处理在执行的时候有过滤器处理.on( events [, selector ] [, data ], handler(eventObject)
阅读全文
posted @
2013-11-27 09:08
【艾伦】
阅读(26044)
推荐(75) 编辑
jQuery 2.0.3 源码分析 事件体系结构
摘要:那么jQuery事件处理机制能帮我们处理那些问题?毋容置疑首先要解决浏览器事件兼容问题可以在一个事件类型上添加多个事件处理函数,可以一次添加多个事件类型的事件处理函数提供了常用事件的便捷方法支持自定义事件扩展了组合事件提供了统一的事件封装、绑定、执行、销毁机制……为了更深入的理解幕后的实现,所以先整理整体的结构思路,从1.7后就去除了live绑定,所以现在的整个事件的API如图:jQuery的事件绑定有多个方法可以调用,以click事件来举例:click方法bind方法delegate方法on方法
('#foo').click(function(){ })('#foo
阅读全文
posted @
2013-11-26 08:47
【艾伦】
阅读(8686)
推荐(23) 编辑
jQuery 2.0.3 源码分析 事件绑定 - bind/live/delegate/on
摘要:事件(Event)是JavaScript应用跳动的心脏,通过使用JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应事件的基础就不重复讲解了,本来是定位源码分析实现的, 所以需要有一定的基础才行为了下一步更好的理解内部的实现,所以首先得清楚的认识到事件接口的划分网上资料遍地都是,但是作为一个jQuery系列的源码分析,我还是很有必要在重新总结一下jQuery对事件的绑定分别有几个API http://www.css88.com/jqapi-1.9/.bind().live().delegate().on()不管是用什么方式绑定,归根到底还是用addEven
阅读全文
posted @
2013-11-25 00:03
【艾伦】
阅读(13747)
推荐(29) 编辑
深入浏览器兼容 细数jQuery Hooks 属性篇
摘要:关于钩子:http://www.cnblogs.com/aaronjs/p/3387906.html本章的目的很简单,通过钩子函数更细节的了解浏览器差异与处理方案,版本是2.0.3所以不兼容ie6.7.8,所以对应了钩子会少很多。。总的来说钩子在.attr(), .prop(), .val() and .css() 四种操作中会涉及属性操作的钩子propFixpropHooksattrHooksvalHooksjQuery.propFix 中的对象源码部分1:保留值属性名字修正jQuery.propFix: { for : "htmlFor", class : "
阅读全文
posted @
2013-11-22 10:41
【艾伦】
阅读(7100)
推荐(11) 编辑
jQuery 2.0.3 源码分析 样式操作
摘要:根据API分类CSSaddClass()jQuery.cssHooks.hasClass().removeClass().toggleClass().addClass()对元素的样式操作,底层的实现就是修改元素的className值实现的功能:增加一条样式规则: .addClass(‘myClass’)增加多条样式规则: .addClass(‘myClass yourClass’)传递回调遍历样式规则:$("ul li:last").addClass(function(index) { return "item-" + index;});从接口传参去分析
阅读全文
posted @
2013-11-20 21:49
【艾伦】
阅读(3981)
推荐(10) 编辑
jQuery 2.0.3 源码分析 钩子机制 - 属性操作
摘要:jQuery提供了一些快捷函数来对dom对象的属性进行存取操作. 这一部分还是比较简单的.根据API这章主要是分解5个方法.attr() 获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个或多个属性。.prop() 获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。.removeAttr() 为匹配的元素集合中的每个元素中移除一个属性(attribute)。.removeProp() 为集合中匹配的元素删除一个属性(property)。.val() 获取匹配的元素集合中第一个元素的当前值或设置匹配的元素集合中每个元素的值jQue
阅读全文
posted @
2013-11-19 13:01
【艾伦】
阅读(10315)
推荐(24) 编辑
实战Hybird app:内存溢出与优化
摘要:pheongap项目:http://www.nduoa.com/apk/detail/646816主要的问题:heap过大,内存低性能差的机子上引起奔溃,直接退出关于web app的优化,不仅仅只是js方面,包括HTML布局嵌套,CSS的属性使用,数据的读取,还有浏览器的重排与回流之类的这里就不讨论了,本章涉及的是脚本代码引发的性能问题,更进一步说就是闭包带来的内存泄露关于性能:首先我不得不承认一个事实,移动端的性能跟PC端,那完全不是一回事比如用innerHTML绘制大段的HTML结构,之后同步获取生成HTML中的ID节点,结果不存在这种问题在单页面模拟多页面,动态创建DOM的时候,尤为明显
阅读全文
posted @
2013-11-04 06:26
【艾伦】
阅读(4472)
推荐(20) 编辑