只有在元素失去焦点后才会触发focusout / blur事件... 顺便说一句,我更喜欢不使用插件来做到这一点。 谢谢!
答案 0 :(得分:4)
呀。你可以用这个:
<input type="text" onblur="this.focus();" />
或者在jQuery中:
$(element).blur(function(){
$(this).focus();
});
答案 1 :(得分:2)
是
单击可聚焦DOM元素(默认情况下可聚焦,或通过向其添加tabIndex
属性使其可聚焦),它将首先收到"focus"
事件,让您知道它& #39;即将获得焦点。
然而,在此之前,无论有什么焦点都会收到类型为"focusout"
的{{1}}事件。假设您的事件变量为FocusEvent
。 e
属性将填充即将获得焦点的元素。如果您通过将焦点设置回失去焦点e.relatedTarget
的事物来处理"focusout"
事件,那么它会立即重新获得焦点以及e.target
和"focus"
事件,而将要获得焦点的对象既不会获得焦点也不会获得任何焦点事件。
因此,处理"focusin"
事件是阻止对象丢失焦点的最佳方法。从技术上讲,因为事件不是"focusout"
,你不能阻止它失去焦点,但你可以强制它立即重新获得焦点,从而防止焦点被转移到另一个元素。
同时,如果您的目的是阻止某个对象接收焦点,那么您最好的选择是通过调用cancelable
处理其"focus"
事件在元素上,所以它永远不会收到焦点,也不会收到blur
事件。