Mat*_*hew 18 javascript jquery
假设我有两个输入字段.
一个人有焦点,然后我点击另一个输入字段.
它是保证的blur()
(失去焦点的第一个元素)的事件发生之前的focus()
事件(其它元素得到焦点)?
gui*_*ido 27
从W3C草案DOM3事件开始,规范告诉您:
焦点事件顺序
本说明书中定义的焦点事件以相对于彼此的设定顺序发生.以下是焦点在元素之间移动时的典型事件序列(此顺序假定最初没有元素聚焦):
> User shifts focus
> 1. focusin Sent before first target element receives focus
> 2. focus Sent after first target element receives focus
> User shifts focus
> 3. focusout Sent before first target element loses focus
> 4. focusin Sent before second target element receives focus
> 5. blur Sent after first target element loses focus
> 6. focus Sent after second target element receives focus
Run Code Online (Sandbox Code Playgroud)
请注意,不能有两个焦点元素的陈述并不完全正确; 虽然我不知道允许两个小部件同时关注的桌面环境,但规范允许实现决定:
其他规范可以定义比本说明书中描述的更复杂的焦点模型,包括允许多个元素具有当前焦点.
这也值得一提:
一种宿主语言可以定义哪些可能接收焦点的特定元素,其下的元件的条件可以接收焦点,通过该聚焦装置可以被改变,并且该顺序的焦点变化.(斜体是我的).
但是,请注意Chrome不符合标准 - 而是订单blur, focusout, focus, focusin
.您可以使用此页面对此进行测试.Webkit浏览器可能存在同样的问题.在focusin
和focusout
自事件支持火狐52.