Javascript中,event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操作。
一、event对象的主要属性和方法:
1.type:事件的类型,就是HTML标签属性中没有“on”前缀之后的字符串,例如“Click”就代表单击事件。
2.srcElement:事件源,就是发生事件的元素。比如<a ></a> a这个链接是事件发生的源头(非IE中用target)
3.button:被按下的鼠标键,0代表没有按键,1代表左键,2代表右键,4代表中间键。按下了多个鼠标键,把这些值叠加。
4.clientX/clientY:事件发生时,鼠标相对于包容窗口的左上角的横、纵坐标。整数值。IE考虑窗口的滚动,所以要想得到事件发生的坐标相对于文档开头的位置,要加上document.body.scrollLeft和document.body.scrollTop。
5.offsetX/offsetY:鼠标指针相对于源元素的位置,可以确定单击Image对象的哪个象素。
6.altKey,ctrlKey,shiftKey:指鼠标事件发生时是否同时按住了Alt、Ctrl或者Shift键。布尔值。
7.keyCode:keydown和keyup事件发生时按键的代码以及keypress事件的Unicode字符。比如event.keyCode=13代表按下了回车键;
8.fromElement、toElement:前者是指代mouseover事件移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素。
9.cancelBubble:布尔值,true代表不被上层元素的事件控制,false代表允许被上层元素的事件控制。
10.returnValue:布尔值,false代表阻止浏览器执行默认的事件动作。
11.addEventListener()和removeEventListener("事件类型",对应的方法,boolen):非IE中的监听程序。
12.attachEvent()和detachEvent("事件类型",对应的方法)方法:IE中的监听程序。
注意:在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素。
二、IE的Event对象:是一个全局属性。在IE中,不能把Event对象作为参数传递给事件处理程序,只能用window.event或者event来引用Event对象。因为在IE中,Event是window的一个属性,也就是说event是一个全局变量。
IE中事件的起泡:IE中事件可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的事件处理函数,到了上层的节点如果还有和下层相同事件类型的事件处理函数,那么上层的事件处理函数也会执行。例如,<div>标签包含了<a>,如果这两个标签都有 onclick事件的处理函数,那么执行的情况就是先执行<a>标签的onclick事件处理函数,再执行<div>的事件处理函数。如果希望<a>的事件处理函数执行完毕之后,不希望执行上层的<div>的onclick的事件处理函数了,那么就把 cancelBubble设置为false即可。
三、W3C DOM标准中的Event:W3C DOM中的Event对象并不是window全局对象下面的属性,换句话说,event不是全局变量。通常在DOM二级标准中,event作为发生事件的文档对象的属性。Event含有两个子接口,分别是UIEvent和MutationEvent,这两个子接口实现了Event的所有方法和属性,而MouseEvent接口又是UIEvent的子接口,所以实现了UIEvent和Event的所有方法和属性。
1.Event
type:事件类型,和IE类似,但是没有“on”前缀,例如单击事件只是“click”。
target:发生事件的节点。
currentTarget:发生当前正在处理的事件的节点,可能是Target属性所指向的节点,也可能由于捕捉或者起泡,指向Target所指节点的父节点。
eventPhase:指定了事件传播的阶段。是一个数字。
timeStamp:事件发生的时间。
bubbles:指明该事件是否起泡。
cancelable:指明该事件是否可以用preventDefault()方法来取消默认的动作。
preventDefault()方法:取消事件的默认动作;
stopPropagation()方法:停止事件传播。
2.UIEvent
view:发生事件的window对象。
detail:提供事件的额外信息,对于单击事件、mousedown和mouseup事件都代表的是点击次数。
3.MouseEvent
button:鼠标键的状态,0代表左键,1代表中间键,2代表右键(和IE中的button属性代表的意义不一样) altKey、ctrlKey、shiftKey、metaKey:和IE相同,但是IE没有最后一个。
clientX、clientY:和IE相同,但DOM标准中不考虑文档的滚动情况,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是0
screenX、screenY:鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要。
relatedTarget:和IE中的fromElement、toElement类似,除了对于mouseover和mouseout有意义外,其他的事件没什么意义。
四、代码示例(IE浏览器):添加监听程序,通过event对象捕捉鼠标点击时的坐标
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<!--页面加载时添加监听程序,页面卸载时移除监听程序-->
<body id="mybody" onload="attachEvent('onmousedown',getXY)" onunload="detachEvent('onmousedown',getXY)">
<!--用此文本框模拟一幅地图-->
<textarea id="map" style="width: 594px; height: 239px" rows="10" cols="10"></textarea>
<table style="width: 257px; height: 161px">
<tr>
<td colspan="2">第一点:</td>
</tr>
<tr>
<td>X坐标值:</td>
<td>
<input type="text" id="x1Position" tabindex="1" onfocus="focusPosition=1"/>
</td>
</tr>
<tr>
<td>Y坐标值:</td>
<td>
<input type="text" id="y1Position" tabindex="2" onfocus="focusPosition=1"/>
</td>
</tr>
<tr>
<td colspan="2" style="height: 14px">第二点:</td>
</tr>
<tr>
<td>X坐标值:</td>
<td>
<input type="text" id="x2Position" tabindex="3" onfocus="focusPosition=2"/>
</td>
</tr>
<tr>
<td style="height: 26px">Y坐标值:</td>
<td style="height: 26px">
<input type="text" id="y2Position" tabindex="4" onfocus="focusPosition=2"/>
</td>
</tr>
</table>
</body>
</html>
<script type="text/javascript">
document.getElementById("map").onmousedown=getXY; //指明event对象要监控的对象.必须指明该对象,否则下面的e=window.event会为null
var focusPosition=1; //全局变量,焦点标志位
///捕捉鼠标左键按下时的屏幕坐标,自动填入坐标文本框中.并通过焦点变换实现两个坐标点轮换填入
function getXY()
{
var e=window.event;
if((e.button<2)&&(e.type=='mousedown')) //鼠标左键按下时发生
{
if(1==focusPosition)
{
document.getElementById('x1Position').value=e.clientX;
document.getElementById('y1Position').value=e.clientY;
document.getElementById('x2Position').focus();
focusPosition+=1;
}
else if(2==focusPosition)
{
document.getElementById('x2Position').value=e.clientX;
document.getElementById('y2Position').value=e.clientY;
document.getElementById('x1Position').focus();
focusPosition-=1;
}
}
}
</script>
分享到:
相关推荐
Event 对象的使用可以分为两个方面:事件处理和事件绑定。事件处理是指在事件发生时执行的函数或代码,而事件绑定是指将事件处理函数绑定到某个元素上,使得该元素能够响应用户的交互行为。 常见的事件类型包括: ...
- **`timeStamp`**:事件发生的时间戳。 - **`bubbles`**:布尔值,表示该事件是否可以冒泡。 - **`cancelable`**:布尔值,表示该事件是否可以通过`preventDefault()`方法取消默认行为。 ### 2. 控制事件流程的...
JavaScript 基础事件与 Event 对象 本文将详细介绍 JavaScript 中的基础事件和 Event 对象,包括事件的定义、EventTarget 接收事件接口、addEventListener、removeEventListener、dispatchEvent 方法 serta ...
_event 对象是 JavaScript 中的一个重要概念,它代表事件的状态,例如触发 event 对象的元素、鼠标的位置及状态、按下的键等等。event 对象只在事件发生的过程中才有效。event 的某些属性只对特定的事件有意义。例如...
Event对象是JavaScript中一个非常重要的概念,它代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。Event对象只在事件发生的过程中才有效。Event的某些属性只对特定的事件有意义。 1. ...
Event对象则是JavaScript事件处理中的核心,它包含了与特定事件相关的所有信息,如事件类型、事件目标等。 在深入讲解Window对象和Event对象之前,我们先了解一些基础概念。JavaScript是一种基于原型的动态类型语言...
JavaScript中的Event对象是事件处理的核心部分,它包含了与事件相关的所有信息,如事件类型、触发事件的元素、鼠标和键盘的状态等。以下是对Event对象及其重要属性的详细解释: 1. **altKey**:这个属性用于检查...
本文实例讲述了JavaScript事件对象event用法。分享给大家供大家参考,具体如下: 前面的文章已经介绍了JavaScript为事件指定处理程序的五种方式。 下面继续介绍JavaScript的事件对象event。 事件对象event包含导致...
在JavaScript编程语言中,`window.event`对象是一个特殊对象,它与浏览器的事件处理机制紧密相关。这个对象在大部分浏览器环境中(尤其是老版本的IE)是全局可用的,提供了当前事件的相关信息。本文将深入探讨`...
在DOM0级和DOM2级的事件处理中,我们可以像下面这样访问事件对象: ```javascript var btn = document.getElementById("myBtn"); btn.onclick = function(event) { console.log(event.type); // 输出:"click" }; ...
在 JavaScript 中,Event 对象是事件状态的代表,它包含了事件发生的元素、键盘状态、鼠标位置和鼠标按钮状态等信息。一旦事件发生,浏览器的内存中就会生成相应的 Event 对象,如单击一个按钮。Event 对象只在事件...
例如,可以使用以下代码来获取事件对象: ```javascript evt = (evt)? evt : ((window.event)? window.event : null); ``` 该代码可以在不同的浏览器中获取事件对象。 事件处理的best practice 在处理事件时,需要...
JavaScript事件对象是JavaScript编程中的一个重要概念,它在事件处理中扮演着核心的角色。事件对象主要用于提供事件的上下文信息,允许开发者在事件处理函数中获取事件相关的详细信息,如事件类型、触发事件的元素、...
事件发布/订阅模式(也称为发布/订阅者模式或观察者模式)是一种设计模式,它允许对象之间的解耦。在这种模式中,我们有三个主要角色:发布者、订阅者和事件中心(也称事件总线)。发布者负责触发事件,订阅者注册...
- **Event对象**:事件处理函数中通常会传递一个Event对象,包含了关于事件的信息,如事件类型、位置等。 - **键盘事件**:如`onkeydown`(键按下)、`onkeyup`(键释放)和`onkeypress`(字符键按下)。 - **...
首先,JavaScript事件分为两类:浏览器事件和DOM(文档对象模型)事件。浏览器事件主要与用户的交互有关,如点击、滚动、提交表单等;DOM事件则关注于文档对象的状态改变,例如元素的加载、改变或删除。 1. 鼠标...
在JavaScript中,`event`对象是浏览器提供的一个标准对象,用于表示用户与网页交互时发生的各种事件的状态。这些事件包括但不限于用户点击、移动鼠标、按下键盘等操作。`event`对象包含了关于事件的所有相关信息,...
以下代码展示了如何获取并使用事件对象: ```javascript var X = event.screenX; var Y = event.screenY; txt.innerHTML = "X=" + X + " Y" + Y; ``` 四、事件冒泡(Bubble) 事件冒泡是指事件从最内层元素向上层...