jquery的自动完成功能隐藏在窗口模糊上,如何防止这种情况?
在互联网上找不到答案。
听起来很简单,但使用以下代码来确定窗口焦点和模糊,我在进入模糊之前打开的所有自动完成都没有显示,似乎窗口模糊是自动完成隐藏的触发器:
$(function() {
$(window).focus(function() {
});
$(window).blur(function() {
$(".ui-autocomplete").each(function(){alert($(this).css("display"));});
});
});
我想为所有显示不是 none 的自动完成设置变量,然后在焦点显示这些变量时,但在模糊时,我得到所有".ui-autocomplete"的显示 none
尝试更改自动完成的blur
事件处理程序,如下所示:
$(function(){
$('#autocomplete').autocomplete({
source: ['cat','rabbit','donkey']
}).off('blur').on('blur', function() {
if(document.hasFocus()) {
$('ul.ui-autocomplete').hide();
}
});
});
使用hasFocus()
功能,您可以检查当前窗口的焦点并确定是否关闭选项
js小提琴在这里