.keypress( handler )返回类型:jQuery
描述:把一个事件处理函数绑定到“keypress”JavaScript事件上,或者在一个元素上触发该事件。
-
增补版本:1.0.keypress( handler )
-
handler每次触发事件时要执行的函数。
-
-
增补版本:1.4.3.keypress( [eventData ], handler )
-
eventData类型:Anything一个对象,包含要传递给事件处理函数的数据。
-
handler每次触发事件时要执行的函数。
-
-
增补版本:1.0.keypress()
- 此签名没有任何参数。
注意:因为keypress
事件不能被任何官方规范文档覆盖,所以使用它时遭遇到的实际行为可能因浏览器而异、因浏览器版本而异
因平台而异。
此方法在前两种变体中是.on( "keypress", handler )
的简写,在第三种变体中是.trigger( "keypress" )
的简写。
当浏览器注册键盘输入时,keypress
事件发送到一个对象。这类似于keydown
事件,除了修改符以及非打印键,譬如Shift、Esc和delete触发keydown
事件但是不触发keypress
事件。这两种事件的其它区别可能因平台和浏览器而异。
keypress
事件处理函数可能附加到任何元素,但是此事件只发送到具有焦点的元素。可获得焦点的元素因浏览器而异,但是表单元素始终可以获得焦点,所以是针对此事件类型的可靠候选者。
例如:考虑以下HTML:
1
2
3
4
5
6
7
8
|
|
此事件处理函数可以被绑定到输入字段:
1
2
3
|
|
现在,当注入点在字段内部时,按下一个键将显示记录:
Handler for .keypress() called.
若要人为触发此事件,请不带参数地应用.keypress()
。
1
2
3
|
|
执行此代码之后,在Trigger the handler上点击也将记录此消息。
如果在任何地方按下的键都需要被捕获(例如,在网页上实现全局快捷键),因为事件冒泡,所有按下的键都会沿着DOM树向上冒泡到document
对象,除非被显式阻断了。
若要确定按下了哪个键,请检查传递给事件处理函数的event
对象。虽然浏览器使用不同的属性来存储此信息,但是jQuery规范化了.which
属性,从而你可以可靠地使用它来检索键代码。
请注意,keydown
和keyup
提供了一个代码,指示按下了哪个键,与此同时,keypress
指示了输入了哪个字符。例如,一个小写的“a”会被keydown
和keyup
报告为65,但是被keypress
报告为97。一个大写的“A”,会被三种事件都报告为65。因为这种区别,当捕获特殊键字形时,譬如捕获方向键时,.keydown()
或.keyup()
是更好的选择。
补充说明:
-
因为
.keypress()
方法是.on( "keypress", handler )
的简写,所以可以使用.off( "keypress" )
来分离。
示例:
当在输入框中按下键时,显示事件对象。注意:此演示文档依赖于简单的$.print()插件(http:resources/events.js)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
|