.focus( handler )返回类型:jQuery
描述:把一个事件处理函数绑定到“focus”JavaScript事件上,或者在一个元素上触发该事件。
-
增补版本:1.0.focus( handler )
-
handler每次触发事件时要执行的函数。
-
-
增补版本:1.4.3.focus( [eventData ], handler )
-
eventData类型:Anything一个对象,包含要传递给事件处理函数的数据。
-
handler每次触发事件时要执行的函数。
-
-
增补版本:1.0.focus()
- 此签名没有任何参数。
- 此方法在前两种变体中是
.on( "focus", handler )
的简写,在第三种变体中是.trigger( "focus" )
的简写。 - 当元素得到焦点时,
focus
事件被发送到该元素。此事件潜在地适用于有限的元素集合,譬如表单元素(<input>
、<select>
等等)和链接(<a href>
)。在最近的浏览器版本中,此事件可以被扩展到包括所有的元素类型,只要显式地设置元素的tabindex
属性。一个元素可以通过键盘命令获得焦点,譬如Tab键,或者利用鼠标在元素上点击来获得焦点。 - 带有焦点的元素通常被浏览器以一些方式突出显示,例如,用虚线包围元素。焦点用来确定哪个元素优先接收键盘相关的事件。
尝试把焦点设置到一个隐藏元素上,会导致Internet Explorer中的错误。请注意,只能在可见的元素上使用.focus()
方法。若要运行一个元素的焦点事件处理函数,而不对元素设置焦点,请使用.triggerHandler( "focus" )
,而不是使用.focus()
。
例如:考虑以下HTML:
1
2
3
4
5
6
7
|
|
事件处理函数可以绑定到第一个输入字段:
1
2
3
|
|
现在点击第一个字段,或者从别的字段轻触它,显示警告框:
Handler for .focus() called.
我们可以在别的元素被点击时触发此事件:
1
2
3
|
|
此代码执行之后,点击Trigger the handler也将弹出警告消息。
focus
事件在Internet Explorer中并不冒泡。因此,依赖于利用focus
事件的委托的脚本将不会跨浏览器一致性工作。然而,自从jQuery 1.4.2以来jQuery通过在它的事件委托方法中,把focus
事件映射到focusin
事件来变通地解决了这个限制。
补充说明:
-
因为
.focus()
方法是.on( "focus", handler )
方法的简写,所以可以使用.off( "focus" )
来分离它。
示例:
引发焦点。
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
|
|
演示:
若要阻止人们在文本框中输入内容,请尝试:
1
2
3
|
|
若要在网页启动时使一个带有id为“login”的登录输入框获得焦点,请尝试:
1
2
3
|
|