Event对象只在事件发生的过程中才有效。
Event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。

Event举例

下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。

view sourceprint
01.<html>
02.<head><title>Cancels Links</title>
03.<script>
04.function cancelLink() {
05.if (window.event.srcElement.tagName == "a" && window.event.shiftKey)
06.window.event.returnValue = false;
07.}
08.</script>
09.</head>
10.<body onclick="cancelLink()">

下面的例子在状态栏上显示鼠标的当前位置。

view sourceprint
1.<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]

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

  1. TRUE 不被上层原素的事件控制。
  2. FALSE 允许被上层元素的事件控制。这是默认值。

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

view sourceprint
01.<script>
02.function checkCancel() {
03.if (window.event.shiftKey)
04.window.event.cancelBubble = true;
05.}
06.function showSrc() {
07.if (window.event.srcElement.tagName == "IMG")
08.alert(window.event.srcElement.src);
09.}
10.</script>
11.<body onclick="showSrc()">
12.<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 的值。

view sourceprint
01.<head>
02.<script>
03.function changeProp(){
04.btnProp.value = "This is the new value";
05.}
06.function changeCSSProp(){
07.btnStyleProp.style.backgroundColor = "aqua";
08.}
09.</script>
10.</head>
11.<body>
12.<p>The event object property propertyName is
13.used here to return which property has been
14.altered.</p>
15.<input type="button" ID="btnProp" onclick="changeProp()"
16.value="Click to change the value property of this button"
17.onpropertychange='alert(event.propertyName+" property has changed value")'>
18.<input type="button" ID="btnStyleProp"
19.onclick="changeCSSProp()"
20.value="Click to change the CSS backgroundColor property of this button"
21.onpropertychange='alert(event.propertyName+" property has changed value")'>
22.</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”

view sourceprint
1.<script>
2.function testMouse(oObject) {
3.if(oObject.contains(event.toElement)) {
4.alert("mouse arrived");
5.}
6.}
7.</script>
8.<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
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

补充说明

1、 event对象只在事件发生的过程中才有效。

firefox里的event跟IE里的不同,IE里的是全局变量,随时可用;firefox里的要用参数引导才能用,是运行时的临时变量。
在IE/Opera中是window.event,在Firefox中是event;而事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,Opera中两者都可用。

2、下面两句效果相同

view sourceprint
1.var evt = (evt) ? evt : ((window.event) ? window.event : null);
2.var evt = evt || window.event; // firefox下window.event为null, IE下event为null

3、IE中事件的起泡

IE中事件可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的事件处理函数,到了上层的节点如果还有和下层相同事件类型的事件处理函数,那么上层的事件处理函数也会执行。例如, div 标签包含了 a ,如果这两个标签都有onclick事件的处理函数,那么执行的情况就是先执行标签 a 的onclick事件处理函数,再执行 div 的事件处理函数。如果希望的事件处理函数执行完毕之后,不希望执行上层的 div 的onclick的事件处理函数了,那么就把cancelBubble设置为true即可。

JS的Event属性和方法相关推荐

  1. js DOM Element属性和方法整理

    js DOM Element属性和方法整理 节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. ...

  2. JS变量、属性、方法、函数的相同点和区别

    JS变量.属性.方法.函数的相同点和区别 1. 变量和属性的相同点 变量和属性都是来存储数据的 2. 变量和属性的区别 变量需要单独声明并赋值,使用的时候直接写变量名,单独存在:属性是在对象里面,不需 ...

  3. js控制div属性隐藏方法

    原文详解:js控制div属性隐藏方法 如题:编写html时如何用js控制div的显示和隐藏. 假定页面展示内容如下: 1.点击触发事件: <div><button class=&qu ...

  4. 基于js对象,操作属性、方法详解

    一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...

  5. 给JS对象添加属性和方法

    方式一:在定义对象时,直接添加属性和方法 function Person(name,age) {this.name = name;this.age = age;this.say = function( ...

  6. JS字符串常用属性、方法

    文章目录 属性 length constructor prototype 方法 charAt() charCodeAt() concat() indexOf() lastIndexOF() slice ...

  7. Event/window.Event属性和方法

    type:事件的类型,如onlick中的click: srcElement/target:事件源,就是发生事件的元素: button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果 ...

  8. JS的Document属性和方法

    document.title //设置文档标题等价于HTML的title标签 document.bgColor //设置页面背景色 document.fgColor //设置前景色(文本颜色) doc ...

  9. JS:字符串的属性和方法

    在底层,字符串是以字符数组的形式保存的. 因此,length属性可以用来获取字符串的一个长度. var str = "hellowordl";console.log(str.len ...

最新文章

  1. Windows Azure 新上线网络相关服务
  2. Metrics —— JVM上的实时监控类库
  3. 神策用户画像 Demo 来了!(文末免费体验)
  4. S5PC100基于I2C子系统的lm75驱动流程图
  5. IdentityServer4 之Client Credentials走起来
  6. 穹顶灯打不出阴暗面_Java 8星期五:Java 8的阴暗面
  7. 网络操作系统 第七章 管理TCP/IP网络
  8. redis 命令行 操作
  9. 【优化】如何检测移动端 CPU 以及内存占用率
  10. Linux三剑客正则表达式常用字符汇总
  11. 使用花生壳做内网穿透
  12. 《深入浅出WPF》——资源学习
  13. 如何解决电脑横屏问题
  14. matlab 的滤波器分析,滤波器matlab分析
  15. excel两列数据对比找不同_对比excel,轻松学习python数据分析
  16. GO的lua虚拟机 gopher-lua
  17. 轻量级kali虚拟机
  18. 遇见你,是最美的意外
  19. cmd无法进入其他盘符问题解决方案
  20. 财务学python还是vba_作为一名会计应届生准备投身财务,想多学一门技能 是推荐python还是VBA或是其他什么 求指点一下?...

热门文章

  1. hdu3074 线段树求区间乘积(单点更新)
  2. 【EventBus】事件通信框架 ( 订阅方法注册 | 注册 事件类型 - 订阅类 + 订阅方法 到指定集合 | 取消注册 数据准备 )
  3. 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )
  4. 【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView )
  5. 【错误记录】Android Studio 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | 指定 APK 打包动态库的 CPU 架构 )
  6. 【组合数学】生成函数 ( 正整数拆分 | 无序不重复拆分示例 )
  7. 【Netty】NIO 简介 ( NIO 模型 | NIO 三大组件 | 选择器 Selector | 通道 Channel | 缓冲区 Buffer | NIO 组件分配 | 缓冲区示例 )
  8. 终于好像懂motan了!!!
  9. AngularJS 服务(Service)
  10. 远程桌面连接mstsc 超扎心