gpt4 book ai didi

javascript - jQuery: Firefox focusout 事件

转载 作者:行者123 更新时间:2023-11-30 07:46:00 24 4
gpt4 key购买 nike

我在一个 div 中有两个输入框,我想将那个 div 隐藏在输入的 focusOut 上,但前提是它们都没有焦点。

这是一个常见的 Firefox 问题(有人称之为遵守标准),但文档正文在两者之间窃取了焦点。

HTML


<div id="baz">
<input type="text" id="foo" name="foo" />
<input type="text" id="bar" name="bar" />
</div>

jQuery


// jQuery Example
jQuery(":input").focusout(function(){
// Don't do anything if one of the input boxes has focus
if( jQuery(":input").is( jQuery(document.activeElement) ){ return; }

// Hide the container if one of the inputs loose focus
jQuery(this).parents("div").css("display","none");
}

虽然这是一个常见的错误,但我忘记了我过去是如何解决它的。我认为这与在检查 activeElement 之前设置超时或进行屏幕刷新有关。


jsFiddle Example

jsFiddle Updated (FF4同样的问题)

最佳答案

Demo

jQuery(":input").focusout(function(){
var elem = jQuery(this).parent("div");
window.setTimeout(function(){
// Don't do anything if one of the input boxes has focus
if( jQuery(":input").is( jQuery(document.activeElement) )){ return; }

// Hide the container if one of the inputs loose focus
elem.hide();
}, 0);
})

Demo

jQuery(document).ready(function () {
var timeoutID;

jQuery(":input").focus(function () {
window.clearTimeout(timeoutID);
}).focusout(function () {
timeoutID = window.setTimeout(function () {
jQuery("#baz").hide();
}, 0);
});
});

关于javascript - jQuery: Firefox focusout 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6158087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com