3

jquery的自动完成隐藏在窗口模糊中,如何防止这种情况?

在网上找不到答案。

听起来很简单,但是使用以下代码来确定窗口焦点和模糊,对于在进入模糊之前打开的所有自动完成,我都没有显示,似乎窗口模糊是自动完成隐藏的触发器:

$(function() {
    $(window).focus(function() {

    });

    $(window).blur(function() {
        $(".ui-autocomplete").each(function(){alert($(this).css("display"));});
    });


});

我想为所有显示非无的自动完成设置变量,然后在焦点上显示这些,但在模糊时,我得到所有“.ui-autocomplete”的显示无

4

1 回答 1

4

尝试像这样更改自动完成的blur事件处理程序:

$(function(){
    $('#autocomplete').autocomplete({
        source: ['cat','rabbit','donkey']
    }).off('blur').on('blur', function() {
        if(document.hasFocus()) {
            $('ul.ui-autocomplete').hide();
        }
    });
});

使用该hasFocus()功能,您可以检查当前窗口的焦点并确定是否关闭选项

jsFiddle在这里

于 2012-11-05T13:35:23.410 回答