一、事件流
事件流描述的是从页面中接受事件的顺序。
IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流
事件冒泡:
事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播至最不具体的那个节点(文档)。------由内到外
事件捕获:
不太具体的节点应该更早的接收到事件,具体的节点最后接收到事件。----由外到内
事件处理程序:
HTML事件处理程序:
缺点:html和js 紧密的耦合在一起。
DOM0级事件处理程序:
是一种较传统的方式,把一个函数赋值给一个事件处理程序的属性。在第四代web浏览器中出现。
优势: 目前支持的比较好,用的比较多。简单,跨浏览器的优势。
元素.事件=null;//删除DOM0级事件
DOM2级事件处理程序(IE不支持):
定义了两个方法:用于处理指定和删除时间处理程序的操作。
addEventListener()和removeEventListener():接收三个参数:要处理的事件名(不带on)、作为事件处理程序的函数、boolean(true:在捕获阶段处理事件处理程序。false:在冒泡阶段处理事件处理程序。)
可以添加多个事件处理程序。按顺序执行。
IE事件处理程序:
添加事件和删除事件分别是:attachEvent()和detachEvent():接收两个参数:要处理的事件名(必须带on)、作为事件处理程序的函数。
不使用第三个参数的原因是:IE8及其更早的浏览器版本只支持事件冒泡。所以默认冒泡。
支持IE事件处理程序的浏览器:IE和OPERA.
跨浏览器的事件处理程序:
var eventUtil={
//添加
addHandler:function(element,type,handler){
//是否支持dom2级
if(element.addEventListener){
element.addEventListener(type,handler,false);
//是否支持ie
}else if(element.attachEvent){
element.attachEvent('on'+type,handler);
//dom0级
}else{
//js中,所有用.的地方都可以用[]代替。element.onclick===element['onclick']此处不能用.,因此替换为[]
element['on'+type]=handler;
}
},
//删除
delHandler:function(element,type,handler){
//是否支持dom2级
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
//是否支持ie
}else if(element.detachEvent){
element.detachEvent('on'+type,handler);
//dom0级
}else{
//js中,所有用.的地方都可以用[]代替。element.onclick===element['onclick']此处不能用.,因此替换为[]
element['on'+type]=null;
}
}
}
事件对象:
在触发DOM上的事件时都会产生一个对象。
事件对象EVENT.
DOM中的事件对象:
(1)type 获取事件类型(click,mouseover,mouseout....)
(2)target 获取事件目标(即事件所在的dom元素)
(3)stopPropagation() 阻止事件冒泡
(4)preventDefault() 阻止事件的默认行为
eg:<a href='#'>超链接</a> 默认行为是点击跳转
IE中的时间对象:
(1)type 获取事件类型(click,mouseover,mouseout....)
(2)srcElement 获取事件目标(即事件所在的dom元素)
(3)cancelBubble属性 阻止事件冒泡 true 阻止冒泡,false 不阻止冒泡
(4)returnValue属性 阻止事件的默认行为 false 阻止事件默认行为
eg:<a href='#'>超链接</a> 默认行为是点击跳转
eventUtil中再添加以下方法:
getEvent:function(event){
//在ie8 之前的浏览器,必须用window.event才能获取到event
return event?event:window.event;
},
getType:function(event){
return event.type;
},
getElement:function(event){
return event.target || event.srcElement;
},
//阻止默认事件
preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue=false;
}
},
stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;
}
}
事件类型:
鼠标事件,键盘事件。
键盘事件:
keyDown:按下键盘上任意键触发,如果按住不放的话,会重复触发此事件
keyPress:按下键盘上字符键触发,如果按住不放,会重复触发此事件。
keyUp: 释放键盘上的键时触发。
event 对象的keyCode属性用于得到键盘对应键的键码值。
相关推荐
DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM...
JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源...
DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件...
**手写DOM事件模型** 在Web开发中,DOM(Document Object Model)事件模型是JavaScript与网页交互的关键。它允许我们监听、处理和触发各种用户或浏览器产生的事件,如点击、鼠标移动、键盘输入等。本篇文章将深入...
通过这种技术,我们可以对目标网页的DOM事件进行断点调试,从而获取更多关于事件触发和处理的信息。在本文中,我们将详细阐述 DOM 事件断点调试的原理和应用。 什么是 DOM 事件断点调试? DOM 事件断点调试是指在 ...
### DOM事件的区别详解 在Web开发中,DOM(Document Object Model)事件处理是与用户交互的重要方式之一。本文将从DOM0级事件处理、DOM2级事件处理以及事件流、事件委托等方面进行深入探讨,帮助读者更好地理解这些...
在JavaScript中,DOM事件处理程序的封装是跨浏览器兼容性的一个关键步骤,因为不同的浏览器对事件处理有不同的实现。本文主要讨论了在将DOM事件处理程序封装到名为`event.js`的文件时可能出现的低级错误,并提供了...
标题 "轻量级的DOM事件委托小于1KB" 指的是一个小型的JavaScript库或技术,它实现了DOM(文档对象模型)事件委托功能,并且整个实现的代码大小非常小,不超过1KB。在Web开发中,DOM事件委托是一种优化性能的策略,...
Symfony 5 文件上传 DOM 事件处理 Symfony 5 全开发视频教程代码仓库提供了一个文件上传的示例代码,通过点击按钮将文件上传到表单中。在这个示例中,我们可以学习到如何使用 JavaScript 获取表单的 DOM 元素,...
标题中的“非常小的库,使使用DOM事件发射器API(和其他API)更容易一些”指的是一个轻量级的JavaScript库,它的主要目的是简化对DOM(文档对象模型)事件发射器API以及其他相关API的使用。在Web开发中,DOM事件是...
DOM事件流的示意图,清晰的展示了DOM事件流的捕获过程,以及冒泡过程
目录(一)DOM事件流① 定义② 图解③ 历史(二)冒泡(三)捕获(四)在不同的阶段执行事件(五)提高内存和性能 — 事件委托① 实例② 优点 (一)DOM事件流 ① 定义 DOM事件流包括三个阶段: 捕获阶段 目标阶段 ...
DOM事件的级别DOM事件的级别,准确来说,是DOM标准定义的级别。DOM2的写法:【重要】上面的第三参数中,true表示事件在捕获阶段触发,false表示事件
下文主要通过一个例子带你 分析DOM事件的传递、事件处理 ,然后在此基础上再 深入总结对事件监听的优化方案 ,最终总结下DOM事件机制 在开源框架中的实战应用 。 一、从实例看事件传递 以下面这个普通的html...
JavaScript DOM事件机制是Web开发中的核心概念之一,它关乎如何响应用户与网页元素的交互。在深入理解这一机制前,我们需要了解三个关键术语:事件流、事件冒泡和事件捕获。 1. 事件流: 事件流描述了事件在HTML...