博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端面试准备(三)
阅读量:5901 次
发布时间:2019-06-19

本文共 1822 字,大约阅读时间需要 6 分钟。

DOM事件类

基本概念:

  DOM事件的级别

  DOM事件模型

  DOM事件流

  描述DOM事件捕获的具体流程

  Event对象的常见应用

  自定义事件

1、DOM事件的级别

DOM0 element.οnclick=function(){}DOM2 element.addEventListener('click',function(){},false)DOM3 element.addEventListener('keyup',function(){},false)

先解答一个小疑问:为啥没有DOM1级事件呢?

 因为在1级DOM标准中没有定义与事件有关的内容,所以事件的级别是没有DOM1的。

 

下面简单介绍dom0,2,3的区别

 0级是最早的,而且目前所有的浏览器仍支持0级DOM模型。缺点是一个事件的处理程序只能对应一个函数

 删除DOM0事件处理程序,只要将对应事件属性置为null即可。

 在2级模型中可以为特定对象的事件注册多个事件监听。

 2级事件的删除

removeEventListener("click",function(){},false);

 3级事件的操作方式和2级事件是一样的。DOM3级事件模块在DOM2级事件的基础上重新定义了这些事件,也添加了一些新事件。包括IE9在内的主流浏览器都支持DOM2级事件,IE9也支持DOM3级事件。dom对以下事件做了改动

  • UI事件
  • 焦点事件
  • 鼠标事件
  • 滚轮事件
  • 文本事件
  • 键盘事件
  • 合成事件
  • 变动事件

关于dom事件级别更多相关内容,推荐大家一篇文章,写的挺详细的。

另:dom3中还定义了自定义事件,在文章下面中会讲到

2、事件模型

 

 事件捕获阶段:事件从最上一级标签开始往下查找,直到捕获到事件目标(target)。

 事件冒泡阶段:事件从事件目标(target)开始,往上冒泡直到页面的最上一级标签。

 3、描述DOM事件捕获的具体流程

4、event对象的常见应用

event.preventDefault(): 阻止默认事件

event.stopPropagation(): 阻止冒泡行为

event.stopImmediateProgation(): 阻止下一个事件响应

event.CurrentTarget():  当前点击的事件

event.target(): 当前被点击的元素

5、自定义事件

var eve = new Event('test');        ev.addEventListener('test', function () {              console.log('test dispatch');        });        setTimeout(function () {              ev.dispatchEvent(eve);        }, 1000)

 

代码

var ev=document.getElementById('ev');    window.addEventListener('click',function(){      console.log('window capture');    },true);//true捕获触发,false冒泡触发    document.addEventListener('click',function(){      console.log('document capture');    },true);    document.documentElement.addEventListener('click',function(){      console.log('html capture');    },true);    document.body.addEventListener('click',function(){      console.log('body capture');    },true);    ev.addEventListener('click',function(){      console.log('ev capture');    },true);

 

结果:

 

转载于:https://www.cnblogs.com/lening206/p/9512595.html

你可能感兴趣的文章
100个MySQL的调节和优化的提示
查看>>
HostMonster主机修改文件权限的方法
查看>>
人生的交易
查看>>
TP5中关联模型的使用详解
查看>>
springMVC注解之入门
查看>>
不用花钱!Android模拟器让你在电脑上免费体验谷歌手机
查看>>
MySql
查看>>
算法分析与设计——贪心法实验报告
查看>>
js时间戳与日期格式的相互转换
查看>>
POJ - 1062 昂贵的聘礼(Dijkstra)
查看>>
Java多态和动态绑定是如何实现的
查看>>
sql server 下载安装标记
查看>>
Android学习6—单元测试的使用
查看>>
js运算符(运算符的结合性)
查看>>
最长上升子序列问题
查看>>
C#中的析构函数
查看>>
Python基础—基础数据类型list(Day4)
查看>>
idea 编译级别的设置
查看>>
内置对象Array的原型对象中添加方法
查看>>
12行代码的相关节点
查看>>