事件处理程序DOM0,DOM2,IE的区别总结
一、事件流
| 顺序 | 备注 | |
| 事件冒泡 | 目标对象~document对象 | |
| 事件捕获 | document对象~目标对象 | 老版本浏览器不支持 |
| DOM事件流 | document对象~目标对象~document对象 | IE8-不支持 |
二、事件处理程序
(1)html事件处理程序(略)
(2)DOM0事件处理程序
- 在元素作用域中运行(this=调用元素)
var btn=document.getElementById("mybtn");
btn.onclick=function(){
alert(this.id);//mybtn
}
- 在冒泡阶段被处理
- 对每个元素值支持一个事件处理程序
- 删除方式
btn.onclick=null;
(3)DOM2事件处理程序
- 在元素作用域中运行(this=调用元素)
var btn=document.getElementById("mybtn");
btn.addEventListener("click",function(){
alert(this.id);//mybtn
},false);
- 采用DOM事件流,可在捕获阶段和冒泡阶段处理
第三个参数为false,表示在冒泡阶段处理事件;参数为true,表示在捕获阶段处理事件。
默认值为false,最大限度兼容各浏览器。(因为老版本只支持冒泡事件)
- 对每个元素值支持多个事件处理程序(主要好处),执行顺序为添加顺序;
- 删除方式(与添加事件的参数完全相同)
方式:removeEventListener()
btn.removeEventListener("click",function(){//无效
alert(this.id);//mybtn
},false);
注意:通过addEventListener()添加的匿名函数将无法移除。即上一段代码中的匿名函数移除不了,因为addEventListener()中的匿名函数与removeEventListener()中的匿名函数是完全不同的函数。所以,应将匿名函数表示为一个变量,如下:
var handler=function(){
alert(this.id);
}
btn.addEventListener("click",handler,false);
btn.removeEventListener("click",handler,false);
(4)IE事件处理程序
- 在全局作用域中运行(this=window)
var btn=document.getElementById("mybtn");
btn.attachEvent("onclick",function(){
alert(this===window);//true
});
- 在冒泡阶段处理
第三个参数为false,表示在冒泡阶段处理事件;参数为true,表示在捕获阶段处理事件。
默认值为false,最大限度兼容各浏览器。(因为老版本只支持冒泡事件)
- 对每个元素支持多个事件处理程序,执行顺序为相反于添加顺序。
- 删除方式(与添加事件的参数完全相同)
方式:detachEvent()
btn.detachEvent("onclick",function(){//无效
alert(this===window);
});
注意:同上;
事件处理程序DOM0,DOM2,IE的区别总结的更多相关文章
- js事件处理程序详解,html事件处理程序,dom0级事件处理程序,dom2级事件处理程序
博客搬迁,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/11/24/js%e4%ba%8b%e4%bb%b6%e5%a4%84%e7%90%86%e ...
- DOM0,DOM2,DOM3 事件基础知识
事件是javascript和HTML交互基础, 任何文档或者浏览器窗口发生的交互, 都要通过绑定事件进行交互; 事件有DOM0, DOM2和DOM3的区分(别问我怎么少了一个DOM1, 也没找到DOM ...
- DOM0,DOM2,DOM3事件,事件基础知识入门
事件是javascript和HTML交互基础, 任何文档或者浏览器窗口发生的交互, 都要通过绑定事件进行交互; 事件有DOM0, DOM2和DOM3的区分(别问我怎么少了一个DOM1, 也没找到DOM ...
- 深入理解DOM事件机制系列第二篇——事件处理程序
× 目录 [1]HTML [2]DOM0级 [3]DOM2级[4]IE[5]总结 前面的话 事件处理程序又叫事件侦听器,实际上就是事件的绑定函数.事件发生时会执行函数中相应代码.事件处理程序有HTML ...
- 探究JavaScript中的五种事件处理程序
探究JavaScript中的五种事件处理程序 我们知道JavaScript与HTML之间的交互是通过事件实现的.事件最早是在IE3和Netscape Navigator 2中出现的,当时是作为分担服务 ...
- javascript将DOM事件处理程序封装为event.js 出现的低级错误记录
将 DOM 0级事件处理程序和DOM2级事件处理程序 IE事件处理程序封装为eventUtil对象,达到跨浏览器的效果.代码如下: var eventUtil = { // 添加事件句柄 addEve ...
- [转]javascript指定事件处理程序包括三种方式:
javascript指定事件处理程序包括三种方式: (1):DOM0级事件处理程序 如: 代码如下: var btn=document.getElementById("mybtn" ...
- JavaScript事件处理程序 学习笔记
我一直认为Javascript的特点就是在和用户交互的过程中可以进行一些操作,那么事件作为用户交互的主要部分就显得特别重要,今天先学习了JS事件处理程序的相关内容. 首先,要明白Javascript ...
- javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记
1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获 ...
随机推荐
- web站点启用https (二)
接上篇内容 二.实际配置案例 实验案例:为web站点启用https 实验环境:seven公司有一个web站点,域名为www.seven.com,启用的身份验证方式是基本验证方式.随着业务发展想成为网上 ...
- Java方法区
方法区 在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中.类型信息是由类加载器在类加载时从类文件中提取出来的.类(静态)变量也存储在方法区中. jvm实现的设计者决定了类型信息的内 ...
- allure报告定制(pytest+jenkins)
环境及安装可查看 pytest+jenkins安装+allure导出报告 要让allure报告更漂亮,更直观,需要在脚本中写入allure特性 一开始allure调用step().story().fe ...
- python 进程与线程(理论部分)
一.理论部分 一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的 ...
- LINQ to Entities does not recognize the method , and this method cannot be translated into a store expression 解决办法
根据用户输入的起始日期,查询以起始日期开始的前20条记录,在ASP.NET MVC的Controller代码中这样写: var Logs = db.Log.Take(20); if (!string. ...
- Python3 print()函数sep,end,file参数用法练习
来自builtins.py:def print(self, *args, sep=' ', end='\n', file=None): # known special case of print &q ...
- java中的POJO、PO、VO分别是什么?
1.PO:persistant object 持久对象 可以看成是与数据库中的表相映射的java对象.使用Hibernate来生成PO是不错的选择. 2. VO:value object值对象. 通常 ...
- javascript004引用类型
–掌握数组的概念.特性.常用方法(重点) –掌握Object,学会使用对象(重中之重) –了解其他引用类型对象 一:数组 •在ECMAScript中数组是非常常用的引用类型了.ECMAScript所定 ...
- First Android application
In eclipse ADT : 1.创建一个新工程 File -> New -> Android Application Project 2.三个主要的文件 /src/MainActiv ...
- ClouderManager集群在Linux里浏览器默认是英文,在Win里浏览器是中文,怎么更改?(图文详解)
不多说,直接上干货! 问题详情 在这里面如何英文改中文的吗? 莫非要把linux的语言环境给改了?? 我找找网页的语言字体怎么更改下 找到对应页面,修改成中文 解决办法 刷新下,即可 欢迎大家,加入我 ...