- 博客(15)
- 资源 (118)
- 收藏
- 关注
原创 读jQuery之十八(元素位置)
本篇所读源码版本为1.7.2 jQuery中提供了获取设置HTML元素位置的接口方法。如下 .offset() .position() .offsetParent() .scrollTop() .scrollLeft() 所有位置相关的代码在项目的offset.js中,总共250行代码。里面还有些未公开的方法,如...
2012-04-24 07:09:25 98
原创 读jQuery之十七(attribute/property/class)
jQuery的属性模块提供了如下方法 attr/removeAttr prop/removeProp(1.6) addClass/removeClass/toggleClass/hasClass val 提供了几个静态方法以支持JQ对象以上方法,如jQuery.attr 对应 attr,即jq对象的attr方法内部调用了jQuery.attr。其次还有 j...
2012-04-23 07:44:42 85
原创 读jQuery之十六(事件代理)
事件代理的实现原理很简单:利用浏览器中事件的冒泡(event bubbling)和事件源(target || srcElement)。 某些场景中特别适合使用事件代理,它有如下好处 1、需要管理的handler更少。 2、占用的内存更少(创建的驻留在内存中的handler少了)。 3、DOM元素与代码更少的绑定。 4、DOM变更后(如添加dom节点)无须重新绑定事件处理器。 ...
2012-04-21 11:45:57 104
原创 读jQuery之十五
在之前的event-jq-0.2.js基础上继续提取jQuery的trigger和namespace。实现功能如下 // add event E.bind(el, 'click', fn); E.bind(el, 'click.name', fn); E.bind(el, 'click', fn, data); // remove event : E.unbi...
2012-04-21 08:27:37 87
原创 读jQuery之十四
最近看完了添加事件和删除事件的核心方法,忍不住想把jQuery的事件模块抠出来。jQuery的代码是非常内聚的,一环套一环。想独立出来不容易。jQuery的事件模块严重依赖于其数据储存(jQuery.data),你会发现我的代码中的dataManager对象对应它。 这里只提供bind和unbind方法。暂不包含 1, 事件命名空间(event namespace) 2, 事件代...
2012-04-20 22:12:04 108
原创 读jQuery之十三(触发事件核心方法)
触发事件,或称模拟用户动作。比如点击,我们可以用代码去模拟用户点击,达到的效果与真实的鼠标点击是一样的。 在 事件模块的演变 我使用了dispatchEvent(标准) 和fireEvent(IE)来主动触发事件。 如下 ... dispatch = w3c ? function(el, type){ try{ ...
2012-04-20 07:40:50 141
原创 读jQuery之十二(删除事件核心方法)
使用jQuery删除事件(或称解除事件绑定)有三个函数:unbind、die和undelegate。 这三个方法都依赖于未公开的jQuery.event.remove(后续使用.remove简写)。此为删除事件的核心方法。 .remove 所作的事情与上一篇提到的.add 刚好相反。且与.add中的处理代码一一对应,即 .add 中有多少种添加事件的方式.remove就...
2012-04-19 13:57:41 141
读jQuery之十一(添加事件核心方法)
上一篇提到jQuery中添加事件提供给客户端程序员的接口方法有很多bind/click等,但其实现的核心方法是jQuery.event.add。这篇看看其源码,这个add定义如下(省略大部分) add: function( elem, types, handler, data ) { if ( elem.nodeType === 3 || elem.nodeType === 8 ) {...
2012-04-19 07:07:58 101
原创 读jQuery之十(事件模块概述)
jQuery的事件模块是较复杂的,前面仅仅提到了对事件对象的包装。即统一了一些兼容性的问题。这篇会综述下jQuery的整个事件模块。后面会详细分析jQuery.event.add/jQuery.event.remove/jQuery.event.trigger。 虽然事件模块代码很难读,但其提供的API接口还是很清晰的。如下 1、 添加事件(bind/one/li...
2012-04-18 14:39:59 80
原创 读jQuery之九(一些瑕疵)
jQuery1.6.1 发布有一段时间了,发现一些冗余代码,列出如下 1,bind 方法,最后一个参数fn是多余的 // Handle object literals if ( typeof type === "object" ) { for ( var key in type ) { this[ name ](key, data, type[k...
2012-04-18 14:34:39 82
原创 将光标定位于输入框最右侧的实现方式
前端开发过程中,经常需要这样的场景。用JS实现将光标定位于输入框最右侧。 场景一:编辑图片的描述文字 场景二:Script.aculo.us的Ajax.InPlaceEditor类。 双击可编辑,编辑后离开可自动更新该区域。 以上场景都需要JS实现将光标定位于输入框最右侧,却不是通过鼠标点入输入框内。 我们知道实现最基本的方法是HTMLElement的f...
2012-04-16 23:10:24 924
原创 xhrhttprequest部分浏览器中不支持put/delete
后端同事想采用REST风格,hailiang在看jQuery文档时发现的$.ajax不是所有浏览器中都支持put/delete。 但没有指出具体是那些浏览器。 我新建了一个Java WEB项目测试所有浏览器,但都支持put和delete。测试浏览器版本如下 Firefox 11 Chrome 18 Safari 5 Opera 11.62 IE9 (含ie...
2012-04-16 20:59:06 792
原创 NodeJS记录(一)
最近在看r.js,顺便记录下node相关知识点。 一、标准输出console console 对象是全局的,它下面的方法如下。经常用的自然log方法。 二、获取命令行参数 如 r.js/build/jslib/node/args.js define(function () { //Do not return the "...
2012-04-07 18:05:27 84
原创 IE8中超高元素设置透明度未生效bug
这是liaoxiang在sohu博首发现的(junhai的机器也重现了),精简后重现代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <div style="heigh
2012-04-07 07:48:07 94
原创 querySelector和getElementById通过id获取元素的区别
这是sina同事xiaoniu发现的,如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <div id="02E503E2A1C011CFC85B7B701A0677EC0
2012-04-06 18:31:51 557 1
ECMAScript 6入门(样章)
2014-09-23
Rework:每个程序员都应该读的一本书
2014-04-11
Mastering Web Application Development with AngularJS
2013-11-13
结构程序设计
2013-11-05
JavaScript异步编程:设计快速响应的网络应用
2013-06-06
JavaScript面向对象编程指南
2013-04-25
编写可维护的JavaScript
2013-04-25
UNIX编程艺术
2012-08-18
基于MVC的JavaScript Web富应用开发
2012-05-21
Essential JavaScript Design Patterns
2012-04-10
Getting Started with GEO.CouchDB and Node.js
2012-03-07
JavaScript Web Application
2012-02-26
JavaScript Patterns (JavaScript模式)
2011-12-30
HTML5 and CSS3: Develop with Tomorrow's Standards Today
2011-12-08
重构-改善既有代码的设计
2011-01-25
HTML5揭秘 英文版
2011-01-12
HTML 5用户指南 英文版
2011-01-12
jQuery 1.4.2 直观速查表
2010-09-10
HttpWatch.Professional.v5.2.16
2010-09-02
httpwatchpro-v4.0.54
2010-09-02
High.Performance.JavaScript
2010-05-13
JavaScript语言精粹
2010-04-26
Javascript语言精髓与编程实践
2010-04-19
我也能做CTO之程序员职业规划
2010-04-19
EMCA262 V5
2010-04-02
周爱民Qomo框架源码
2009-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人