内容
.on( "focus" [, eventData ], handler )返回值: jQuery
描述: 将事件处理程序绑定到 "focus" 事件。
此页面描述了 focus
事件。有关已弃用的 .focus()
方法,请参见 .focus()
。
- 当元素获得焦点时,会向该元素发送
focus
事件。此事件隐式地适用于一组有限的元素,例如表单元素 (<input>
、<select>
等) 和链接 (<a href>
)。在最近的浏览器版本中,可以通过显式设置元素的tabindex
属性,将事件扩展到包括所有元素类型。元素可以通过键盘命令(例如 Tab 键)或通过鼠标单击元素来获得焦点。 - 具有焦点的元素通常会以某种方式被浏览器突出显示,例如用虚线包围元素。焦点用于确定哪个元素是第一个接收与键盘相关的事件的元素。
尝试将焦点设置为隐藏元素会导致 Internet Explorer 中出现错误。请注意,仅对可见元素使用 .trigger( "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
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
|
|
.trigger( "focus" )返回:jQuery
描述:在元素上触发“focus”事件。
-
添加版本:1.0.trigger( "focus" )
-
"focus"类型: 字符串字符串
"focus"
。
-
请参阅 .on( "focus", ... )
的描述。