JavaScript中window.event事件对象详解与属性用法

作者:竹影

时间:2026-10-26

浏览:343

本文详细解析JavaScript中window.event事件对象的使用方法,涵盖altKey、button、cancelBubble、clientX/Y等核心属性。通过具体代码示例,讲解如何获取鼠标坐标、判断按键状态及控制事件冒泡,适用于前端开发中的交互逻辑处理。

文章目录

JavaScript window.event事件概述

在编写JavaScript程序时,经常需要用到window.event事件。为了更清晰地理解其用法,以下整理了相关资料与大家分享。


描述

event对象用于表示当前事件的状态,例如触发该事件的元素、鼠标的位置及状态、按下的键等。


需要注意的是,event对象仅在事件发生的过程中有效。


某些event属性仅对特定类型的事件有意义。例如,fromElement和toElement属性仅对onmouseover和onmouseout事件有效。


以下示例演示了如何检查鼠标是否在链接上单击,并在shift键被按下时取消链接的跳转。


代码如下:

 
<HTML>
<HEAD><TITLE>Cancels Links</TITLE>
<SCRIPT LANGUAGE="JScript">
function cancelLink() {
if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
window.event.returnValue = false;
} 
</SCRIPT>
<BODY onclick="cancelLink()">下面的例子在状态栏上显示鼠标的当前位置。
<BODY onmousemove="window.status = 'X=' + window.event.x + ' Y=' + window.event.y">属性:
altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX, screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y

1.altKey

event核心属性详解

描述:


检查alt键的状态。


语法:


event.altKey


可能的值:


当alt键按下时,值为TRUE,否则为FALSE。只读。



2.button

描述:


检查按下的鼠标键。


语法:


event.button


可能的值:


0 没按键


1 按左键


2 按右键


3 按左右键


4 按中间键


5 按左键和中间键


6 按右键和中间键


7 按所有的键


该属性仅用于onmousedown、onmouseup和onmousemove事件。对其他事件,无论鼠标状态如何,均返回0(例如onclick)。



3.cancelBubble

描述:


检测是否接受上层元素的事件控制。


语法:


event.cancelBubble[ = cancelBubble]


可能的值:


这是一个可读写的布尔值:


TRUE 不被上层元素的事件控制。


FALSE 允许被上层元素的事件控制。这是默认值。


示例:


以下代码片段演示了当在图片上点击(onclick)时,如果同时shift键也被按下,则取消上层元素(body)上的事件onclick所引发的showSrc()函数。


代码如下:

 
<SCRIPT LANGUAGE="JScript">
function checkCancel() {
if (window.event.shiftKey)
window.event.cancelBubble = true;
} 
function showSrc() {
if (window.event.srcElement.tagName == "IMG")
alert(window.event.srcElement.src);
} 
</SCRIPT>
<BODY onclick="showSrc()">
<IMG onclick="checkCancel()" src="/sample.gif">4.clientX

鼠标坐标与按键状态属性

描述:


返回鼠标在窗口客户区域中的X坐标。


语法:


event.clientX


注释:


这是一个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。



5.clientY

描述:


返回鼠标在窗口客户区域中的Y坐标。


语法:


event.clientY


注释:


这是一个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。



6.ctrlKey

描述:


检查ctrl键的状态。


语法:


event.ctrlKey


可能的值:


当ctrl键按下时,值为TRUE,否则为FALSE。只读。



7.fromElement

元素交互与事件控制属性

描述:


检测onmouseover和onmouseout事件发生时,鼠标所离开的元素。参考:18.toElement


语法:


event.fromElement


注释:


这是一个只读属性。



8.keyCode

描述:


检测键盘事件相对应的内码。


该属性用于onkeydown、onkeyup和onkeypress事件。


语法:


event.keyCode[ = keyCode]


可能的值:


这是一个可读写的值,可以是任何一个Unicode键盘内码。如果没有引发键盘事件,则该值为0。



9.offsetX

描述:


检查相对于触发事件的对象,鼠标位置的水平坐标


语法:


event.offsetX



10.offsetY

描述:


检查相对于触发事件的对象,鼠标位置的垂直坐标


语法:


event.offsetY



11.propertyName

描述:


设置或返回元素的变化了的属性的名称。


语法:


event.propertyName[ = sProperty]


可能的值:


sProperty是一个字符串,指定或返回触发事件的元素在事件中变化了的属性的名称。


该属性是可读写的。无默认值。


注释:


你可以通过使用onpropertychange事件,得到propertyName的值。


示例:


以下示例通过使用onpropertychange事件,弹出一个对话框,显示propertyName的值。


代码如下:

 
<HEAD>
<SCRIPT>
function changeProp()
{ 
btnProp.value = "This is the new VALUE";
} 
function changeCSSProp()
{ 
btnStyleProp.style.backgroundColor = "aqua";
} 
</SCRIPT>
</HEAD>
<BODY>
<P>The event object property propertyName is
used here to return which property has been
altered.</P>
<INPUT TYPE=button ID=btnProp onclick="changeProp()"
VALUE="Click to change the VALUE property of this button"
onpropertychange='alert(event.propertyName+" property has changed value")'>
<INPUT TYPE=button ID=btnStyleProp
onclick="changeCSSProp()"
VALUE="Click to change the CSS backgroundColor property of this button"
onpropertychange='alert(event.propertyName+" property has changed value")'>
</BODY>

12.returnValue

[/code]


事件返回值与屏幕坐标属性

描述:


设置或检查从事件中返回的值


语法:


event.returnValue[ = Boolean]


可能的值:


true 事件中的值被返回


false 源对象上事件的默认操作被取消


示例见本文的开头。



13.screenX

描述:


检测鼠标相对于用户屏幕的水平位置


语法:


event.screenX


注释:


这是一个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。



14.screenY

描述:


检测鼠标相对于用户屏幕的垂直位置


语法:


event.screenY


注释:


这是一个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。



15.shiftKey

描述:


检查shift键的状态。


语法:


event.shiftKey


可能的值:


当shift键按下时,值为TRUE,否则为FALSE。只读。



16.srcElement

其他事件相关属性

描述:


返回触发事件的元素。只读。示例见本文开头。


语法:


event.srcElement



17.srcFilter

描述:


返回触发onfilterchange事件的滤镜。只读。


语法:


event.srcFilter



18.toElement

描述:


检测onmouseover和onmouseout事件发生时,鼠标所进入的元素。参考:7.fromElement


语法:


event.toElement


注释:


这是一个只读属性。


示例:以下代码演示了当鼠标移到按钮上时,弹出一个对话框,显示“mouse arrived”


代码如下:

 
<SCRIPT>
function testMouse(oObject) {
if(oObject.contains(event.toElement)) {
alert("mouse arrived");
} 
} 
</SCRIPT>
: 
<BUTTON ID=oButton onmouseover="testMouse(this)">Mouse Over This.</BUTTON>19.type

描述:


返回事件名。


语法:


event.type


注释:


返回没有“on”作为前缀的事件名,例如,onclick事件返回的type是click


只读。



20. x

描述:


返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。


语法:


event.x


注释:


如果事件触发后,鼠标移出窗口外,则返回的值为-1


这是一个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。



21. y

描述:


返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。


语法:


event.y


注释:


如果事件触发后,鼠标移出窗口外,则返回的值为-1


这是一个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章