JavaScript事件模型
来源:互联网 发布:自考培训机构 知乎 编辑:程序博客网 时间:2024/05/18 00:09
原文在 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.无法通过事件的冒泡、委托等机制。
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 事件模型
- javascript事件模型解析
- javascript之事件模型
- JavaScript事件模型
- JavaScript事件驱动模型
- javascript--事件绑定&模型
- javascript 事件模型
- JavaScript 事件模型
- Javascript事件模型
- javascript事件模型
- JavaScript--事件模型
- JavaScript--事件模型
- JavaScript--事件模型
- JavaScript事件模型
- JavaScript事件模型
- JavaScript 事件模型
- TextField随着键盘的弹出上移
- ubuntu 16.04 上 Redis利用持久化进行数据迁移
- sublime控制台以及jshint插件安装
- Nelder–Mead method
- 占位22
- JavaScript事件模型
- Android开发之——FilenameFilter文件过滤器
- Python-smtplib
- 练习
- web前端-CSS 伪元素 -023
- target is null for setProperty(null,)错误的引发原因及解决办法
- iOS崩溃日志的处理
- Test
- Javascript—XHR/AJAX/跨域