目录
.on( "focus" [, eventData ], handler )返回值: jQuery
描述: 为 "focus" 事件绑定事件处理程序。
本页描述了 focus 事件。有关已弃用的 .focus() 方法,请参见 .focus()。
- 当元素获得焦点时,会发送
focus事件。此事件隐式适用于有限的元素集,例如表单元素(<input>、<select>等)和链接(<a href>)。在较新版本的浏览器中,可以通过显式设置元素的tabindex属性将该事件扩展到包括所有元素类型。元素可以通过键盘命令(如 Tab 键)或通过鼠标单击元素来获得焦点。 - 浏览器通常会以某种方式突出显示具有焦点的元素,例如用虚线环绕元素。焦点用于确定哪个元素是接收键盘相关事件的第一个元素。
在 Internet Explorer 中尝试将焦点设置到隐藏元素会导致错误。请注意,仅在可见元素上使用 .trigger( "focus" )。要运行元素的 focus 事件处理程序而不将焦点设置到该元素,请使用 .triggerHandler( "focus" ) 而不是 .trigger( "focus" )。
例如,考虑以下 HTML:
|
1
2
3
4
5
6
7
|
|
事件处理程序可以绑定到第一个输入字段
|
1
2
3
|
|
现在单击第一个字段,或通过其他字段制表键到它,会显示警报
调用了 `focus` 的处理程序。
我们可以在单击另一个元素时触发该事件
|
1
2
3
|
|
执行此代码后,点击 触发处理程序 也会显示该消息。
focus 事件不冒泡。从 1.4.2 版开始,jQuery 通过在其事件委托方法中将 focus 映射到 focusin 事件来解决此限制。
与所有其他浏览器不同,IE 中的原生 focus 事件是异步的。为避免与此差异相关的问题,从 jQuery 3.7.0 版开始,jQuery 在 IE 中使用 focusin 作为 focus 的原生后备事件。
示例
示例 1
触发焦点。
|
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
|
|
演示
示例 2
为了阻止人们在文本输入框中输入内容,可以尝试
|
1
2
3
|
|
示例 3
要在页面加载时将焦点设置到 id 为 'login' 的登录输入框,可以尝试
|
1
2
3
|
|
.trigger( "focus" )返回值: jQuery
描述: 触发元素上的 "focus" 事件。
-
版本添加: 1.0.trigger( "focus" )
-
"focus"类型: string字符串
"focus"。
-
请参阅 .on( "focus", ... ) 的说明。