- 一、JavaScript简介
- 1.1 JavaScript 简介
- 1.2 开发环境
- 二、基本语法
- 2.1 语法
- 2.2 数据类型
- 2.3 变量
- 2.4 表达式和运算符
- 2.5 语句
- 三、BOM
- 3.1 windows 对象
- 3.2 location 对象
- 3.3 history对象
- 3.4 screen对象
- 四、DOM
- 4.1 节点NodeType属性
- 4.2 获取节点
- 4.3 节点操作
- 4.4 属性操作
- 4.5 操作表格
- 五、事件
- 5.1 事件流
- 5.2 文档加载事件
- 5.3 事件类型
- 六、函数
- 6.1 函数基本用法
- 6.2 递归函数
- 6.3 闭包函数
- 七、面向对象
- 7.1 理解对象
- 7.2 原型和原型链
- 7.3 设计模式
- 八、错误与调试
- 8.1 错误处理与调试
- 九、进阶知识
- 9.1 表单处理
- 9.2 Cookie和存储
- 9.3 定时器
- 9.4 Ajax
- 9.5 Json
- 9.6 代码规范
5.1 事件流
事件流描述的是从页面中接收事件的顺序。
1.事件冒泡
IE 的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。
所有现代浏览器都支持事件冒泡,但在具体实现上还是有一些差别。IE5.5 及更早版本中的事件冒泡会跳过html 元素(从 body 直接跳到 document )。IE9、Firefox、Chrome 和 Safari 则将事件一直冒泡到 window 对象。
2.事件捕获
Netscape Communicator团队提出的另一种事件流叫做事件捕获(event capturing)。事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。
3.DOM事件流
“DOM2级事件”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。
4.阻止冒泡
事件冒泡处理可能会激活我们本来不想激活的事件,导致程序错乱,甚至无从下手调试,这常成为对事件冒泡不熟悉程序员的棘手问题。所以必要时,我们要阻止事件冒泡。
stopPropagation() 阻止事件冒泡:
<xmp>
//阻止事件冒泡函数
function stopBubble(e){
if (e && e.stopPropagation)
e.stopPropagation()
else
window.event.cancelBubble=true
}
</xmp>
preventDefault() ,用于取消事件的默认行为:
<xmp>
var link = document.getElementById("myLink");
link.onclick = function(event){
event = EventUtil.getEvent(event);
EventUtil.preventDefault(event);
};
</xmp>
上一篇:4.5 操作表格
下一篇:5.2 文档加载事件
评论
共0 条评论
没有更多了..