09 2013 档案

摘要:一、是捕获还是冒泡昨天被问到一个问题:事件流有几个阶段?在这几个阶段中,事件一共发生几次?问题很简单,但对于事件一共发生几次有点乱。总觉得捕获也能触发事件、冒泡也能触发事件,可事件确实只发生了一回啊!所以写篇文章梳理一下,对此很清楚的同学可以跳过了。子问题1:事件流有几个阶段?“DOM2级事件”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。1. IE9以前的IE浏览器都只支持后两个阶段,也就是处于目标阶段和事件冒泡阶段。这个顺序很好理解,在嵌套层次最深的节点上接收事件,然后逐级向上传播到父级节点。2. 早期的Netscape团队提出的另一种事件流叫做事件捕获。即顶层节点应 阅读全文
posted @ 2013-09-27 18:46 赵东禹 阅读(1264) 评论(2) 推荐(2)
摘要:下面这个栗子,CSS选择器它是如何工作的?.mod-nav h3 span {font-size: 16px;}如果不知道匹配规则,可能的理解是从左向右匹配:先找到.mod-nav,然后逐级匹配h3、span,在这个过程中如果遍历到叶子节点都没有匹配就需要回溯,继续寻找下一个分支。但事实上,CSS选择器的读取顺序是从右向左。还是上面的选择器,它的读取顺序变成:先找到所有的span,沿着span的父元素查找h3,中途找到了符合匹配规则的节点就加入结果集;如果直到根元素html都没有匹配,则不再遍历这条路径,从下一个span开始重复这个过程(如果有多个最右节点为span的话)。在某条CSS规则下( 阅读全文
posted @ 2013-09-26 16:41 赵东禹 阅读(10499) 评论(12) 推荐(11)
摘要:原型在JavaScript中,每个函数都有一个prototype属性,这个属性是一个指针,指向该函数的原型对象。这个原型对象为所有该实例所共享。在默认情况下,原型对象包含一个属性叫做constructor,它指向prototype属性所在的函数指针。图片和例子来自《JavaScript高级程序设计(第三版)》。function Person () {}Person.prototype.name = 'Nicholas';Person.prototype.age = 29;Person.prototype.job = 'Software Enginner';Per 阅读全文
posted @ 2013-09-10 18:29 赵东禹 阅读(1569) 评论(3) 推荐(3)