JavaScript事件模型
2016-10-11 11:03
162 查看
原文在 http://www.cnblogs.com/1wen/p/5640997.html我增加上我的例子 并且进行了理解JavaScript事件模型
下面的代码是我写的,上面的部分知识总结不是我写的,知识为了更好的理解这个点,写了个例子而已,针对于事件冒泡
JavaScript事件模型
在各种浏览器中存在三种事件模型: 原始事件模型 , DOM2事件模型 , IE事件模型。
其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE以外的所有主流浏览器支持.
原始事件模型:
在原始事件模型中(也有说DOM0级),事件发生后没有传播的概念,没有事件流。事件发生,处理,结束,就这么简单。
监听函数只是元素的一个属性值,通过指定元素的属性值来绑定监听器。书写方式有两种:
(1) HTML代码中指定属性值:
(2) 在js代码中指定属性值:document.getElementsByTagName(‘input’)[0].onclick = func
优点:所有浏览器都兼容
缺点:
1.逻辑与显示没有分离
2.相同事件的监听函数只能绑定一个,后绑定的会覆盖掉前面的
3.无法通过事件的冒泡、委托等机制。
此模型是W3C制定的标准模型。W3C制定的事件模型中,一次事件的发生包含三个过程:
(1)事件捕获阶段。事件被从document一直向下传播到目标元素,
在这过程中依次检查经过的节点是否注册了该事件的监听函数,若有则执行。
(2)事件处理阶段。事件到达目标元素,执行目标元素的事件处理函数.
(3)事件冒泡阶段。事件从目标元素上升一直到达document,同样依次检查经过的节点是否注册了该事件的监听函数,
有则执行。
所有的事件类型都会经历 "事件捕获阶段" 但是只有部分事件会经历 "事件冒泡阶段" 阶段,
例如submit事件就不会被冒泡。
下面的代码是我写的,上面的部分知识总结不是我写的,知识为了更好的理解这个点,写了个例子而已,针对于事件冒泡
JavaScript事件模型
在各种浏览器中存在三种事件模型: 原始事件模型 , DOM2事件模型 , IE事件模型。
其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE以外的所有主流浏览器支持.
原始事件模型:
在原始事件模型中(也有说DOM0级),事件发生后没有传播的概念,没有事件流。事件发生,处理,结束,就这么简单。
监听函数只是元素的一个属性值,通过指定元素的属性值来绑定监听器。书写方式有两种:
(1) HTML代码中指定属性值:
(2) 在js代码中指定属性值:document.getElementsByTagName(‘input’)[0].onclick = func
优点:所有浏览器都兼容
缺点:
1.逻辑与显示没有分离
2.相同事件的监听函数只能绑定一个,后绑定的会覆盖掉前面的
3.无法通过事件的冒泡、委托等机制。
DOM2事件模型
此模型是W3C制定的标准模型。W3C制定的事件模型中,一次事件的发生包含三个过程:(1)事件捕获阶段。事件被从document一直向下传播到目标元素,
在这过程中依次检查经过的节点是否注册了该事件的监听函数,若有则执行。
(2)事件处理阶段。事件到达目标元素,执行目标元素的事件处理函数.
(3)事件冒泡阶段。事件从目标元素上升一直到达document,同样依次检查经过的节点是否注册了该事件的监听函数,
有则执行。
所有的事件类型都会经历 "事件捕获阶段" 但是只有部分事件会经历 "事件冒泡阶段" 阶段,
例如submit事件就不会被冒泡。
<body> FirstController.jsp 如果 li和span 都加上 onclick 的话 那么点击span 会向上冒泡,li 的点击事件也会触发 如果只有span有onclick事件的话,那么只有 spanclick 会触发<pre style="background-color: rgb(255, 255, 255); font-family: 宋体; font-size: 9pt;"> 实例代码 <li onclick="liclick()"> <span onclick="spanclick()">事件冒泡测试</span> </li> <script type="application/javascript"> function spanclick(){ alert(" wo shi span"); } function liclick(){ alert(" wo shi li"); } </script> </body>
相关文章推荐
- 同时支持三种事件模型的javascript
- javascript事件模型代码
- 关于javascript DOM事件模型的两件事
- javascript中0级DOM和2级DOM事件模型浅析
- Javascript 事件模型
- javascript事件驱动模型的不完全剖析
- javascript计算器之DOM事件模型-----浏览器兼容问题
- javascript中0级DOM和2级DOM事件模型浅析
- javascript 传统事件模型构造的事件监听器实现代码
- Javascript事件模型
- javascript事件模型代码
- Javascript事件注册机制--同时支持三种事件模型的javascript(转)
- Javascript事件注册机制--同时支持三种事件模型的javascript(转)
- 关于javascript DOM事件模型的两件事
- 同时支持三种事件模型的javascript
- javascript的事件模型
- 同时支持三种事件模型的javascript
- JavaScript 事件模型总结
- javascript中0级DOM和2级DOM事件模型浅析
- PHP中实现类似Javascript的事件模型