JavaScript(十八) Dom Event 一
2008-04-24 11:51
120 查看
事件发生的顺序(也就是事件流)是IE4.0与Netscape4.0在事件支持上的主要差别
IE的事件处理机制
IE上事件的解决方案是绰号为冒泡(dubbed bubbling)的技术,冒泡型事件的基本思想是,事件按照从最特定的目标 到最不特定的目标(document对象)的顺序触发,例如如果有下面的页面
<html>
<head></head>
<body onclick="handleClick()">
<div onclic="handleClick()">Click Me!</div>
</body>
</html>
如果用户使用IE5.5点击则事件按照以下顺序"冒泡" div -> body -> document 流程的方法之所以被称为冒泡,因为事件是按照DOM层次象水泡一样不断的上升到顶端. 在IE6中, html元素也可以接受到冒泡的事件. 如果不确定用户用的是IE5.5还是IE 6.0,最好避免在的<HTML/>元素级别上处理事件.
Netscape Navigator 的事件处理机制
IE 4.O 使用冒泡(dubbed bubbling)型事件,相对的Netscape Navigator 4.0 使用了另一种称为捕获型事件 (event capturing )的解决方案.事件的捕获和冒泡刚好是相反的两种过程 捕获型事件: 事件从最不精确的对象(document)开始触发,然后到最精确) 再次使用前面的例子,如果用户点击
元素,事件按照下面的路径传播. documen -> div
DOM 事件流
DOM同时支持两种事件流,捕获型和冒泡型事件.但是捕获型事件先发生.两种事件流会触及DOM中的所有对象. 从document对象开始,也在document对象结束(大部分兼容的游览器回继续将事件的捕获/冒泡延续到window对象)
再考虑前面的例子,
事件流为: window -> document -> body -> div -> div -> body -> document -> window
1 2 3 4 5 6 7 8
(前面4个事件为捕获过程,后面的为冒泡过程) 注意因为事件的目标(元素),是最精确的元素(于是,在DOM树中最深),是上他会接收两次事件,一次在捕获过程中, 另一次在冒泡过程中。
DOM事件模型最独特的性质是,文本节点也会触发事件(IE中不会),所以如果点击例子中的文本Click Me,实际的事件流, 应该为以下:
window -> document -> body -> div -> (text) -> div ->body -> document -> window
1 2 3 4 5 6 7 8 9
IE的事件处理机制
IE上事件的解决方案是绰号为冒泡(dubbed bubbling)的技术,冒泡型事件的基本思想是,事件按照从最特定的目标 到最不特定的目标(document对象)的顺序触发,例如如果有下面的页面
<html>
<head></head>
<body onclick="handleClick()">
<div onclic="handleClick()">Click Me!</div>
</body>
</html>
如果用户使用IE5.5点击则事件按照以下顺序"冒泡" div -> body -> document 流程的方法之所以被称为冒泡,因为事件是按照DOM层次象水泡一样不断的上升到顶端. 在IE6中, html元素也可以接受到冒泡的事件. 如果不确定用户用的是IE5.5还是IE 6.0,最好避免在的<HTML/>元素级别上处理事件.
Netscape Navigator 的事件处理机制
IE 4.O 使用冒泡(dubbed bubbling)型事件,相对的Netscape Navigator 4.0 使用了另一种称为捕获型事件 (event capturing )的解决方案.事件的捕获和冒泡刚好是相反的两种过程 捕获型事件: 事件从最不精确的对象(document)开始触发,然后到最精确) 再次使用前面的例子,如果用户点击
元素,事件按照下面的路径传播. documen -> div
DOM 事件流
DOM同时支持两种事件流,捕获型和冒泡型事件.但是捕获型事件先发生.两种事件流会触及DOM中的所有对象. 从document对象开始,也在document对象结束(大部分兼容的游览器回继续将事件的捕获/冒泡延续到window对象)
再考虑前面的例子,
事件流为: window -> document -> body -> div -> div -> body -> document -> window
1 2 3 4 5 6 7 8
(前面4个事件为捕获过程,后面的为冒泡过程) 注意因为事件的目标(元素),是最精确的元素(于是,在DOM树中最深),是上他会接收两次事件,一次在捕获过程中, 另一次在冒泡过程中。
DOM事件模型最独特的性质是,文本节点也会触发事件(IE中不会),所以如果点击例子中的文本Click Me,实际的事件流, 应该为以下:
window -> document -> body -> div -> (text) -> div ->body -> document -> window
1 2 3 4 5 6 7 8 9
相关文章推荐
- JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
- JavaScript HTML DOM EventListener
- JavaScript HTML DOM EventListener
- JavaScript让IE浏览器event对象符合W3C DOM标准
- JavaScript 之HTML DOM EventListener
- Javascript Event事件中IE与标准DOM的比较
- [JavaScript]addDOMLoadEvent:DOM加载事件
- javascript之DOM EventListener
- Javascript Event事件中IE与标准DOM的比较
- Javascript Event事件中IE与标准DOM的比较
- javascript DOM attachEvent
- 34-JavaScript-DOM-History-Location-Navigator-Screen-Event
- javascript与dom编程(二)Event
- How to invoke a JSF managed bean on a HTML DOM event using native JavaScript?
- JavaScript要点(十三) HTML DOM EventListener
- [JavaScript]addLoadEvent方法--摘自<JavaScript+DOM编程艺术>
- JavaScript基础----22Javascript-DOM EventListener
- javascript将DOM事件处理程序封装为event.js 出现的低级错误记录
- 动态创建表格js文件,javascript,Ajax,DHTML动态实现表格的创建,动态读取XML中的文件,读取dom节点的例子。