chaojidan

导航

随笔分类 -  javascript框架设计-司徒正美

上一页 1 2 3 下一页

javascript框架设计-司徒正美
第二十六课:jQuery对事件对象的修复
摘要:因为原生的event对象,在不同浏览器下,有不同的属性和方法,因此需要用jQuery进行兼容。jQuery在这里分两步走,首先创建一个伪事件类jQuery.Event(jQuery里面自定义的事件类),这个事件类会统一处理事件对象的兼容性问题,比如:stopPropagation,preventDe... 阅读全文

posted @ 2014-12-23 10:25 chaojidan 阅读(432) 评论(0) 推荐(0) 编辑

第二十五课:jQuery.event.trigger的源码解读
摘要:本课主要来讲解jQuery.event.trigger的源码解读。trigger = function(event, data, elem, onlyHandlers){ if(elem && (elem.nodeType === 3 || elem.nodeType ===8)){ //触发的元... 阅读全文

posted @ 2014-12-22 15:10 chaojidan 阅读(2279) 评论(0) 推荐(1) 编辑

第二十四课:jQuery.event.remove,dispatch的源码解读
摘要:本课还是来讲解一下jQuery是如何实现它的事件系统的。这一课我们先来讲一下jQuery.event.remove的源码解读。remove方法的目的是,根据用户传参,找到事件队列,从里面把匹配的handleObj对象移除,在参数不足的情况下,可能移除多个或所有的handleObj。当队列的长度为0(... 阅读全文

posted @ 2014-12-19 17:46 chaojidan 阅读(813) 评论(0) 推荐(0) 编辑

第二十三课:jQuery.event.add的原理以及源码解读
摘要:本课主要来讲解一下jQuery是如何实现它的事件系统的。我们先来看一个问题:如果有一个表格有100个tr元素,每个都要绑定mouseover/mouseout事件,改成事件代理的方式,可以节省99次绑定,更何况它还能监听将来添加的tr元素。这就是jQuery中的live方法。这种机制使用的是事件冒泡... 阅读全文

posted @ 2014-12-18 16:16 chaojidan 阅读(1537) 评论(2) 推荐(0) 编辑

第二十二课:js事件原理以及addEvent.js的详解
摘要:再看这篇博客之前,希望你已经对js高级程序编程一书中的事件模块进行了详读,不然我只能呵呵了。document.createEventObject,在IE下创建事件对象event。elem.fireEvent,在IE下触发事件,里面有两个参数type,event。其中type是触发的事件类型,even... 阅读全文

posted @ 2014-12-17 14:21 chaojidan 阅读(5860) 评论(1) 推荐(0) 编辑

第二十一课:js属性操作的兼容性问题
摘要:上一课主要讲了属性的概念,用法,固有属性和自定义属性的区别,class属性操作的方法等,这一课主要讲一些有关属性操作的兼容性问题。IE6-IE8在一些表示URL的属性会返回补全的改过编码的路径,比如:href,action,background,cite,data,src,url等。我们只需要用ge... 阅读全文

posted @ 2014-12-16 15:57 chaojidan 阅读(431) 评论(0) 推荐(0) 编辑

第二十课:js中如何操作元素的属性系统
摘要:本章的内容有点复杂,我将用简单的方式来介绍重要的东西,不重要的东西,这里就不讲了,讲了也毛用。通常我们把对象的非函数成员叫做属性。对元素节点来说,其属性大题分为两大类,固有属性和自定义属性。固有属性拥有默认值,并且无法删除。自定义属性是用户随意添加的键值对。浏览器提供一组API来供人们操作自定义属性... 阅读全文

posted @ 2014-12-15 18:34 chaojidan 阅读(1396) 评论(0) 推荐(1) 编辑

第十七课:js数据缓存系统的原理
摘要:这一章主要讲的是jQuery的缓存系统的历史发展,以及他自己的框架的缓存系统的实现。都是源码解析。我就挑几个重点讲下:(1)jQuery的缓存机制的原理jQuery的缓存机制实现的原理是在元素中添加自定义属性,然后把这个自定义属性赋值为uid,而这个uid就在jQuery的cache对象中的一个属性... 阅读全文

posted @ 2014-12-15 10:10 chaojidan 阅读(3284) 评论(4) 推荐(3) 编辑

第十九课:盒子模型
摘要:css的盒子模型是一个前端工程师必须知道的知识点。一个元素,它的盒子模型是:margin(边界)+border(边框)+padding(填充)+content(内容)。其中除了content,其他三个都有上下左右4个方向,比如:margin-left,padding-left,border-left... 阅读全文

posted @ 2014-12-12 16:34 chaojidan 阅读(885) 评论(0) 推荐(0) 编辑

第十八课:js样式操作需要注意的问题
摘要:样式分为,外部样式(),内部样式(),行内样式(style:)。再加上一个important对选择器权重的干扰。大体上,我们可以在标准浏览器上使用getComputedStyle,IE6-IE8下使用currentStyle来获取精确的样式。不过getComputedStyle不是元素上的方法,而是... 阅读全文

posted @ 2014-12-11 19:50 chaojidan 阅读(484) 评论(0) 推荐(0) 编辑

第十六课:一些奇葩的元素节点object,video
摘要:object元素object这个元素,现在前端很少用到,但是像flash,svg等奇葩元素,必须嵌套在object对象元素中。现代浏览器用video,canvas代替这些元素。之前做过图表和地图的一些应用,像highchart,e-chart,这些图表插件,基本上是使用svg元素(嵌套在object... 阅读全文

posted @ 2014-12-08 14:46 chaojidan 阅读(1063) 评论(0) 推荐(0) 编辑

第十五课:奇葩的元素节点iframe
摘要:iframe一般用来加载一个页面,然后嵌入到主页面中。创建起来消耗资源,而且消耗连接数。但是它是一个物超所值的东西,可以实现无缝刷新,模拟onhashchange跨域,安全的加载第三方资源与广告,实现富文本编辑,文件上传,用它搞定IE6-IE7的select BUG(select标签会移到遮罩层的上... 阅读全文

posted @ 2014-12-05 15:06 chaojidan 阅读(2125) 评论(0) 推荐(2) 编辑

第十四课:js操作节点的插入,复制,移除
摘要:节点插入appendChild方法,insertBefore方法是常用的两个节点插入方法,具体实现,请看js高级程序设计,或者自行百度。这里提一下面试时经常会问到的问题,插入多个节点时,你是怎么插入的。如果你回答一个一个插入,那么每插入一次就会引起一次回流,插入100次,(面试官一般会说100,或者... 阅读全文

posted @ 2014-12-04 17:48 chaojidan 阅读(952) 评论(0) 推荐(0) 编辑

第十三课:js操作节点的创建
摘要:浏览器提供了多种方法创建节点。比如:document.createElement,innerHTML,insertAdjacentHTML,createContextualFragment。document.createElement方法传入一个标签名,返回此类型的元素节点,对于浏览器不支持的标签类... 阅读全文

posted @ 2014-12-04 14:59 chaojidan 阅读(412) 评论(0) 推荐(0) 编辑

第十二课:Sizzle引擎详解
摘要:这篇博客难度太大,跟前端开发其实没什么关系,如果你想成为大牛,那就去了解下吧。如果你还不想,那可以忽略,毕竟面试官也不会问到这里来,因为他也不太懂。呵呵。Sizzle引擎是jQuery的选择器,它大部分操作都是从右到左进行选择,特殊选择符会从左到右。用户输入$("div"),$("div p.cla... 阅读全文

posted @ 2014-12-03 17:38 chaojidan 阅读(1145) 评论(7) 推荐(0) 编辑

第十一课:js操作选择器的通用函数
摘要:1.判断文档是否是XML文档var isXML = function(elem){ var documentElement = elem && (elem.ownerDocument || elem).documentElement; return documentElement ? doc... 阅读全文

posted @ 2014-12-03 11:09 chaojidan 阅读(1319) 评论(0) 推荐(0) 编辑

第十课:CSS选择器的介绍和区分
摘要:IE7以及以下版本:getElementById是不区分表单元素ID与Name的,因此如果有一个表单元素只定义name,并与我们的目标元素ID同名,并且我们的目标元素在它的后面,那么就会选择到那个表单元素。所以一般在定义表单元素时,都会定义跟name一样的id,就是以防其他元素的id跟表单元素的na... 阅读全文

posted @ 2014-12-02 15:59 chaojidan 阅读(953) 评论(0) 推荐(0) 编辑

第九课:js的类与继承
摘要:因为本书是js的框架设计,因此观看本书的必须有js基础,看不懂,请不要觉得自己差。我也是看了5遍js高级程序设计,才能看懂这本书的。有关js的构造函数,继承的方法大家可以去看js的高级程序设计,我这里只讲一个大家比较容易弄错的问题:function A(){}A.prototype = { aa:... 阅读全文

posted @ 2014-12-02 11:26 chaojidan 阅读(509) 评论(0) 推荐(0) 编辑

第八课:日期的扩展与修复
摘要:Date的构造分为四种:new Date()new Date(value) //传入毫秒数new Date(dateString) new Date(year,month,day hour,minute , second, millisecond) //day后面的hour... , 可选... 阅读全文

posted @ 2014-12-01 16:48 chaojidan 阅读(314) 评论(0) 推荐(0) 编辑

第七课:数值以及函数的扩展和修复
摘要:1.数值扩展和修复toFixed(num) 方法可把 Number 四舍五入为指定小数位数的数字。num必需,规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。返回 NumberObject 的字符串表示,不采用指数计数... 阅读全文

posted @ 2014-12-01 15:16 chaojidan 阅读(726) 评论(0) 推荐(0) 编辑

上一页 1 2 3 下一页