[size=x-small][size=small]第九章 事件
一、事件流
1.冒泡型事件
思想:事件按照从最特定的事件目标到最不特定的事件目标的顺序触发。
eg:
IE:div->body->html->document
Mozilla:div->body->html->document->window
2.捕获型事件
思想:与冒泡型事件事件顺序相反。事件按照从最不特定的事件目标到最特定的事件目标的顺序触发。
eg:
IE:document->html->body->div
Mozilla:window->document->html->body->div
3.DOM中的事件流
同时支持两种事件模型:捕获型事件和冒泡型事件,但捕获型事件先发生。
eg:window->document->html->body->div->body->html->document->window
所以对于事件目标是接受了2次事件,一次是捕获过程,一次是冒泡过程。
二、事件处理函数
定义:用于响应某个事件而调用的函数。
IE:
attachEvent()用来给一个事件添加事件处理函数
detachEvent()用来给一个事件分离事件处理函数
[object].attachEvent("event",fn) 或者 [object].event=fn
[object].detachEvent("event",fn)
DOM:
addEventListener()添加事件
removeEventListener()删除事件
[object].addEventListener("event",fn,booleanValue)booleanValue若是true,则表示用于捕获阶段;若是false,则表示用于冒泡阶段
[object].removeEventListener("event",fn,booleanValue)
[object].event=fn这样事件处理函数会被添加到冒泡阶段
五、事件对象
1.访问事件对象
IE:var oEvent=window.event;
DOM:var oEvent=arguments[0];
2.IE\DOM相似性
获取事件类型:oEvent.type
获取按键代码:oEvent.keyCode
检测Shift、Alt、Ctrl键:oEvent.shiftKey\oEvent.altKey\oEvent.ctrlKey
获取鼠标指针在客户端区域(浏览器中显示网页的部分)的坐标:oEvent.clientX\oEvent.clientY
获取鼠标指针在计算机屏幕中(整个计算机窗口)的坐标:oEvent.screenX\oEvent.screenY
3.IE\DOM 区别
获取目标:
IE:var oTarget=oEvent.srcElement;
DOM:var oTarget=oEvent.target;
获取字符代码:
IE:var iCharCode=oEvent.keyCode;
DOM:var iCharCode=oEvent.charCode;
阻止某事件的默认行为:
IE:oEvent.returnValue=false;
DOM:oEvent.preventDefault();
停止事件复制(冒泡)
IE:oEvent.cancelBubble=true;
DOM:oEvent.stopPropagation();
五、事件类型
1.鼠标事件
click:用户点击鼠标左键时发生(如果右键也按下则不会发生)。当用户的焦点在按钮上,并且按了回车键,同样也会触发这个事件。
dbclick:用户双击鼠标左键时发生(如果右键也按下则不会发生)
mousedown:用户点击任意一个鼠标按钮时发生
mouseout:鼠标指针在某个元素上,且用户将要移除元素边界时发生
mouseover:鼠标移除某个元素,到另一个元素时发生
mouseup:用户松开任意一个按钮时发生
mousemove:鼠标在某个元素上持续时发生
2.键盘事件
keydown:用户在键盘上按下某按键时发生
keypress:用户按下一个键,并且产生一个字符时发生
keyup:用户释放按着的按键时发生
3.HTML事件
load事件:完全载入后
unload事件:完全卸载后
abort事件:用户停止下载过程时,如果object对象还未完全载入时触发
error事件:出错时
select事件:选择时
change事件:发生改变
submit事件:提交
reset事件:重置
resize事件:改变大小
scroll事件:滚动
focus事件:获得焦点
blur事件:失去焦点
4.突变事件
DOMSubtreeModified:当文档或元素子树因为添加或删除节点而改变时触发
DOMNodeInserted:当一个节点作为另一个节点的子节点插入时触发
DOMNodeRemoved:当一个节点作为另一个节点的子节点删除时触发
DOMNodeRemoveFromDocument:当一个节点从文档中删除时触发
DOMNodeInsertedIntoDocument:当一个节点插入到文档中触发
六、跨平台事件
var EventUtil=new Object;
添加事件:
EventUtil.addEventHandler=function(oTarget,sEventType,fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false);
}else if(oTarget.attachEvent){
oTarget.attachEvent("on"+sEventType,fnHandler);
}else{
oTarget["on"+sEventType]=fnHandler;
}
}
删除事件:
EventUtil.removeEventHandler=function(oTarget,sEventType,fnHandler){
if(oTarget.removeEventListener){
oTarget.removeEventListener(sEventType,fnHandler,false);
}else if(oTarget.detachEvent){
oTarget.detachEvent("on"+sEventType,fnHandler);
}else{
oTarget["on"+sEventType]=null;
}
}
分享到:
相关推荐
JavaScript 事件机制详细研究 JavaScript 事件机制是指浏览器中发生的各种事件,例如点击、鼠标悬停、键盘输入等,JavaScript 通过捕捉这些事件来执行相应的操作。本文将详细介绍 JavaScript 事件机制的实现方式和...
事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例代码JavaScript 事件处理 事件绑定 示例...
JavaScript 事件处理 常用事件(鼠标事件、键盘事件、表单事件)示例代码JavaScript 事件处理 常用事件(鼠标事件、键盘事件、表单事件)示例代码JavaScript 事件处理 常用事件(鼠标事件、键盘事件、表单事件)示例...
JavaScript事件详解 JavaScript是一种基于浏览器的脚本语言,它的事件机制是实现动态交互的重要部分。在JavaScript中,事件是用户或浏览器对网页进行操作时触发的特定动作,比如点击按钮、鼠标移动等。本文将详细...
接下来,为了使WebView能够执行JavaScript代码并处理JavaScript事件,我们需要启用JavaScript支持。我们可以调用`WebSettings`类的`setJavaScriptEnabled()`方法: ```java WebSettings settings = webView....
JavaScript 事件处理 二级菜单级联 示例代码JavaScript 事件处理 二级菜单级联 示例代码JavaScript 事件处理 二级菜单级联 示例代码JavaScript 事件处理 二级菜单级联 示例代码JavaScript 事件处理 二级菜单级联 ...
JavaScript 事件处理 下拉列表和可选项 示例代码JavaScript 事件处理 下拉列表和可选项 示例代码JavaScript 事件处理 下拉列表和可选项 示例代码JavaScript 事件处理 下拉列表和可选项 示例代码JavaScript 事件处理 ...
实验报告详细介绍了JavaScript事件处理的相关知识,这在Web开发中是非常关键的一部分,因为事件是用户与网页交互的主要方式。以下是对各个知识点的详细说明: 1. **JavaScript事件基本概念**: - **事件**:是用户...
JavaScript事件查询是Web开发中的重要概念,它涉及到用户与网页交互时的各种响应处理。这篇文档“javascript事件查询综合”很可能是对JavaScript事件处理机制的详细阐述。在Web开发中,JavaScript事件模型允许开发者...
JavaScript事件是JavaScript编程中至关重要的一个概念,它用于响应用户或浏览器的行为,如点击、滚动、键盘输入等。本文将详细解析JavaScript事件的几个关键点:异步回调、事件对象、`this`关键字以及事件冒泡的管理...
JavaScript事件是网页交互的核心,它定义了当特定动作发生时,浏览器如何响应。这些动作可以是用户的操作,如点击、滚动、键盘输入,或者是页面加载、数据改变等。JavaScript事件的处理方式有多种,包括事件处理属性...
JavaScript事件是Web开发中不可或缺的一部分,它允许我们与用户进行交互,响应用户的操作,并以此来更新页面内容。本文将深入探讨JavaScript事件的各个方面,帮助开发者更好地理解和应用这些关键概念。 一、事件...
在前端开发中,编写高性能的JavaScript事件处理代码至关重要。高效的事件处理不仅能够提升用户体验,还能减少不必要的计算和DOM操作,从而加快页面的响应速度。随着Web应用的日益复杂,对JavaScript事件系统的优化...
"WEB页编程技巧──JavaScript事件的应用.pdf" 本文档主要介绍了JavaScript事件在WEB页编程中的应用,包括JavaScript事件的概念、分类、事件处理器的使用、事件驱动编程等方面的知识点。 一、JavaScript事件概述 ...
JAVASCRIPT事件与动态页面编程 本文概述了JAVASCRIPT事件、事件监视器和事件处理器,并通过一个示例程序详细介绍了如何使用JAVASCRIPT事件处理器进行动态页面编程。 JAVASCRIPT事件是指人机交互的结果,如鼠标移动...
标题中的"JavaScript事件学习小结(一)事件流"指的是JavaScript中的事件处理机制,特别是事件流的概念。事件流描述了在DOM(文档对象模型)中事件如何从根节点传播到具体的元素节点。在JavaScript中,事件是用户与...
"扣代码工具 JavaScript事件 捕获者2.0.zip"这个压缩包文件显然聚焦于JavaScript事件处理,特别是事件捕获的概念。事件是用户与网页交互时产生的行为,如点击按钮、滚动页面等,而事件处理则允许开发者对这些行为...
JavaScript事件是Web开发中不可或缺的一部分,它允许用户与网页进行交互并响应用户的操作。这篇博客主要探讨了JavaScript事件的基本概念、事件模型以及如何处理事件。 首先,我们需要理解什么是JavaScript事件。...
标题中的“AJAX中不触发javascript事件”指的是在使用AJAX技术进行页面更新时,可能出现JavaScript事件不按预期触发的情况。这通常是由于AJAX请求更新页面部分时,不会触发表单提交、点击或其他依赖于页面刷新的...