DOM事件类

1、DOM中的事件级别

  DOM0: element.onclick = function(){}

  DOM1: 没有与事件相关的设计

  DOM2: element.addEventListener(‘click‘,function(){},false/true);冒泡/捕获,默认冒泡

  DOM3:element.addEventListener(‘keyup‘,function(){},false/true);多事件类型

2、DOM事件模型:捕获 冒泡

3、事件流

  阶段一:捕获阶段

  阶段二:目标阶段

  阶段三:冒泡阶段

4、描述DOM事件具体流程

捕获:window document HTML body div  ... 目标元素

冒泡:相反

 1 // 捕获 过程,冒泡把true改成false
 2 var ev = document.getElementById(‘ev‘);
 3 window.addEventListener(‘click‘, function() {
 4     console.log("window capture");
 5 }, true);
 6 document.addEventListener(‘click‘, function() {
 7     console.log("document capture");
 8 }, true);
 9 document.documentElement.addEventListener(‘click‘, function() {
10     console.log("html capture");
11 }, true);
12 document.body.addEventListener(‘click‘, function() {
13     console.log("body capture");
14 }, true);
15 ev.addEventListener(‘click‘, function() {
16     console.log("ev capture");
17 }, true);

注意:获取html标签是:document.documentElement

5、event对象的常见应用

1 event.preventDefault();//阻止默认事件
2 event.stopPropagation();//阻止事件冒泡
3 event.stopImmediatePropagation();//事件响应优先级
4 event.currentTarget();//当前所绑定的事件的对象
5 event.target();//事件委托,判断哪个被绑定

6、自定义事件

1 // 自定义事件
2 var eve = new Event(‘test‘);
3 ev.addEventListener(‘test‘, function() {
4     console.log("test dispatch");
5 });
6 setTimeout(function() {
7     ev.dispatchEvent(eve);
8 }, 2000)

原文地址:https://www.cnblogs.com/bestchenyan/p/9696778.html

时间: 2024-08-05 08:27:19

DOM事件类的相关文章

面试视频知识点整理1-5(DOM事件类)

基本概念: DOM事件的级别(事件处理程序): 0级:element.onclick=function(){} 2级:element.addEventListener('click',function(){},false) 3级:element.addEventListener('keyup',function(){},false) 在二级的基础上添加更多的事件 DOM事件模型: 事件冒泡   目标元素->...html->document->window 事件捕获    window-

DOM事件与jQuery事件的是非纠葛

在javascript和JQuery之中,都有事件的处理方式,在我们编写程序实现某些功能的时候,我们会发现使用原生的DOM事件与JQuery中封装的事件都能实现同样的效果,那么也许我们会认为他们之间的区别不是很大,甚至说基本没有区别.这种观点是错误的,其实在事件函数的底层设计时,他们赋予元素的事件属性是通过不同的事件绑定机制来实现的. 我们先从表面理解:我们都知道,JQuery是javascript的一个函数库,他是基于javascript原生设计的.就是说JQuery中的事件,都是通过java

仅用原生JavaScript手写DOM事件模型

前言 前段时间博客园里有篇很火的帖子2016十家公司前端面试小记,主要讲作者的前端求职面试经历,其中提到了面试官会考察手写一个简单的事件模型: "如果上述都ok的话,那么极有可能要求让你[实现事件模型],即写一个类或是一个模块,有两个函数,一个bind一个trigger,分别实现绑定事件和触发事件,核心需求就是可以对某一个事件名称绑定多个事件响应函数,然后触发这个事件名称时,依次按绑定顺序触发相应的响应函数." 如果了解观察者模式,那么事件模型应该不算太难.本着深入钻研的精神,我试着来

jQuery操作dom事件

参考:jQuery权威指南jQuery初步jQuery选择器jQuery操作domjQuery操作dom事件jQuery插件jQuery操作AjaxjQuery动画与特效jQuery实现导航栏jQuery实现点击式选项卡jQuery实现select三级联动 //1.绑定事件bind() bind('event name', eventData, function(event) { /* Act on the event */ }); //event name事件名称:可接收事件列表 blur,f

DOM事件模型

DOM 首先,DOM全称是Document Object Model,即文档对象模型.DOM是W3C的标准,定义了访问 HTML 和 XML 文档的标准. “W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式.” DOM事件 DOM使Javascript有能力对HTML上的事件做出反应.这些事件包括鼠标键盘的点击事件.移动事件以及页面中内容的变化等.HTML元素事件是浏览器内在自动产生的,当有事件发生时html元素会向外界(这里主要

从click事件理解DOM事件流

事件流是用来解释页面上的不同元素接受一个事件的顺序,首先要明确两点: 1.一个事件的影响元素可能不止一个(同心圆理论),但目标元素只有一个. 2.如果这些元素都绑定了相同名称的事件函数,我们怎么知道这些函数的运行顺序?于是有了事件流的概念(事件捕捉,事件冒泡) 举个例子: <div id="outer"> <p id="inner">Click me!</p> </div> 为了看起来方便,先无视CSS样式,那么蓝色的

iOS:触摸控件UITouch、事件类UIEvent

UITouch:触摸控件类   UIEvent:事件类 ??????UITouch的介绍?????? 一.触摸状态类型枚举 typedef NS_ENUM(NSInteger, UITouchPhase) { UITouchPhaseBegan,             // 开始触摸 UITouchPhaseMoved,             // 触摸移动 UITouchPhaseStationary,       // 触摸没有移动 UITouchPhaseEnded,        

DOM事件模型学习笔记

下面的内容属于阅读笔记,其中涉及大量内容来自于PPK的博客的内容,如果你要跟随我的脚步领略大家风采,那么就从Introduction to Events开始阅读吧. 现代的前端开发应该是会严格遵守 html 展示文档内容构成,css 渲染页面效果,javascript 提供交互 浏览器提供交互行为可以追溯到Netscape公司在其第二个版本中支持javascript语言,随后其与微软之间的浏览器大战,以及w3c标准制定的落后,导致至今一直被诟病的浏览器兼容问题,而这些不兼容中关于DOM事件模型的

整理之DOM事件阶段、冒泡与捕获、事件委托、ie事件和dom模型事件、鼠标事件

整理之DOM事件阶段 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可见.比如说React中的单向数据流,Node中的流,又或是今天本文所讲的DOM事件流.都是流的一种生动体现.用术语说流是对输入输出设备的抽象.以程序的角度说,流是具有方向的数据. 事件流分事件冒泡与事件捕获 在浏览器发展的过程中,开发团队遇到了一个问题.那就是页面中的哪一部分拥有特定的事件? 可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其