JS event对象属性完整指南

作者:小圆点

时间:2026-10-22

浏览:251

本文详细解析JavaScript中event对象的各项属性,涵盖altKey、button、cancelBubble、clientX/Y、ctrlKey、fromElement、keyCode、offsetX/Y、propertyName、returnValue、screenX/Y、shiftKey、srcElement、srcFilter、toElement、type、x和y等属性的描述、语法及可能的值。通过具体代码示例,展示如何在不同事件(如鼠标点击、键盘按键、属性变更)中正确使用这些属性,包括取消默认行为、控制事件冒泡、获取鼠标位置及检测修饰键状态等实际应用。

文章目录

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">





以下是event对象支持的主要属性列表:




altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX,


screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y




修饰键与鼠标按键属性

1.altKey


描述:


用于检测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 表示允许事件冒泡,允许被上层元素的事件控制。这是默认值。



例子:


以下代码片段演示了当点击图片时,如果同时按下了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


描述:


用于检测与键盘事件相对应的Unicode内码。


该属性适用于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


描述:


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



语法:


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


这是一个只读属性。这意味着,你只能通过它来获取鼠标的当前位置,而不能通过它来修改鼠标的位置。


实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章