javascript-event 对象的属性和方法

转载 2011年01月08日 17:38:00

事件触发时,会将一个 Event 对象传递给事件处理程序,比如:

document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);

事件类型

DOM 事件类型是分为 UIEvent、UIEvent:KeyEvent、UIEvent:MouseEvent,不同的事件有不同的属性和方法,但常用的来说我们都不会用 错,比如我们不会在鼠标事件中去取键盘值(Ctrl、Alt、Shift 除外),所以我们没有必要深究。

该对象的属性和方法有:

view 只读,对象,发生事件的 Window 对象。

type 只读,字符串。比如鼠标点击事件的类型:click。

eventPhase 只读,数字,事件流正经历的阶段。1-捕获,2-目标,3-冒泡。

target 只读,对象,派发事件的目标对象。比如鼠标是点击在哪个按钮上的。

currentTarget 只读,对象,当前正在调用监听器的对象,也就是当前 addEventListener 是绑定在哪个对象上的。

timeStamp 只读,数字,用毫秒表示事件发生时距计算机开机的时间。


cancelable 只读,布尔,处理事件的默认行为是否可以停止。主要针对一些系统事件,如果值为 true,则 event 的 preventDefault 方法可以使用,否则不可用。

preventDefault() 阻止浏览器的默认行为,比如在文本框中打字触发 keydown,如果 keydown 事件处理程序中调用了 preventDefault(),所打的字就不会跑到文本框中去,注意,此时不要弹出 alert 对话框,否则可能不起作用。IE 中在事件处理程序中用 return false 实现类似功能。


bubbles 只读,布尔,事件是否开启冒泡功能。

stopImmediatePropagation 这个东西在 JavaScript 中是个属性,而不是方法,布尔,但具体测试并未发现其用途,不知是不是 bug。

stopPropagation() 停止当前的事件流传播,但不会停止当前正在处理的对象。IE 中用 event.cancelBubble =  true 实现类似功能。

cancelBubble 布尔,是否取消冒泡,不建议使用 ,用 stopPropagation() 代替。

preventBubble() 阻止冒泡,不建议使用 ,用 stopPropagation() 代替。

preventCapture() 阻止捕获,不建议使用 ,用 stopPropagation() 代替。


detail 只读,数字,提供时间的额外信息,对于 click 事件、mousedown 事件和 mouseup 事件,这个字段代表点击的次数。

isChar 只读,布尔,按下的按键值是否是字符,比如按下 Ctrl 键时,就返回 false。不过您在 Firefox 中测试时,该值总是 false,Firefox 官方已经说明这是一个 bug。

altKey 只读,布尔,是否按下了 Alt 键。

ctrlKey 只读,布尔,是否按下了 Ctrl 键。

shiftKey 只读,布尔,是否按下了 Shift 键。

metaKey 只读,布尔,是否按下了 Meta 键。


下面一些属性很有意思,请仔细区别。

charCode 只读,数字,字符(英文、数字、符号)的 Unicode 值。

  • 只用于 keypress。

keyCode 只读,数字,键盘按键值。

  • 用于 keypress 时:返回非字符按键值(除 Ctrl、Shift、Alt、Caps Lock、单行文本框中按向上键等);
  • 用于 keydown、keyup 时:返回任意键值。

button 只读,数字,鼠标按键值。

  • 用于 click 时:0-左键。
  • 用于 mousedown、mouseup 时:0-左键,1-中间键(滚轮),2-右键。

which 只读,数字,键盘按键值或鼠标按键值。

  • 用于 keypress 时:等同于 charCode + 回退键 + 回车键;
  • 用于 keydown、keyup 时:返回任意键值;
  • 用于 click 时:1-左键,与 button 的值略有区别。
  • 用于 mousedown、mouseup 时:1-左键,2-中间键(滚轮),3-右键,与 button 的值略有区别。

可以看出,which 只有一点没有包括:那就是 keypress 时,不如 keyCode 那么全,但实际上,keypress 事件中用于非字符键的情况较少,所以一般还是用 which 代替全部。

相关文章推荐

Javascript的event对象属性详解

本文介绍了js中event的各个属性

Event对象——属性和方法

1、事件处理程序中返回false的效果: 事件处理程序   返回false的效果 click 单选按钮和复选按钮取消设置,对于submit按钮,表单提交被取消。对于reset按钮,表单不 被重置。对于...

javascript学习笔记—event属性和方法以及window事件

鼠标 / 键盘属性 属性 描述 IE F O W3C altKey 返回当事件被触发时,"ALT" 是否...

Web前端教程js-event(事件对象及其属性、方法)

js event

Javascript DOM Event对象方法详解

Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。事件通常与函数结合使用,函数不会在事件发生前被执行! 1、事件句柄 (Event Handle...

JavaScript内置对象属性及方法大全

1.Date属性(1):constructor      所建立对象的函数参考prototype       能够为对象加入的属性和方法方法(43):getDay()    ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)