Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 始终保持ui自动完成打开状态_Jquery_Jquery Ui_Autocomplete - Fatal编程技术网

Jquery 始终保持ui自动完成打开状态

Jquery 始终保持ui自动完成打开状态,jquery,jquery-ui,autocomplete,Jquery,Jquery Ui,Autocomplete,我正在使用ui自动完成: 我需要自动完成一直处于打开状态,所以当身体的某个地方被点击时,它不应该关闭。我在谷歌上搜索过这个,但什么也找不到 下面是一个如何做到这一点的工作示例: 每当触发关闭事件时,通过再次搜索相同的输入,保持自动完成框处于打开状态: $( "#input" ).autocomplete({ source: availableTags, close : function (event, ui) { val = $("#comment").val

我正在使用ui自动完成:


我需要自动完成一直处于打开状态,所以当身体的某个地方被点击时,它不应该关闭。我在谷歌上搜索过这个,但什么也找不到

下面是一个如何做到这一点的工作示例:

每当触发关闭事件时,通过再次搜索相同的输入,保持自动完成框处于打开状态:

$( "#input" ).autocomplete({
    source: availableTags,

    close : function (event, ui) {
         val = $("#comment").val();
         $("#input").autocomplete( "search", val ); //keep autocomplete open by 
         //searching the same input again
         $("#input").focus();
        return false;  
    }
});

嘿,很抱歉反应太晚了

我觉得这比专注于输入和多次搜索要干净得多

试试这个

JAVASCRIPT:

$( "#input1" ).autocomplete({
    source: availableTags,
    close : function (event, ui) {
        if (!$("ul.ui-autocomplete").is(":visible")) {
            $("ul.ui-autocomplete").show();
        }
    }
});
演示:


希望这有帮助

还有一个仅限于CSS的选项:

<style>
    .ui-autocomplete { display: inline-block !important; }
</style>

以下是另一种解决方案: 将以下配置添加到$input.autocomplete:

为了关闭菜单,您需要添加一个点击式处理程序。 我发现最简单的方法是:

$input.on('blur', function () {
  $input.autocomplete('widget').hide();
});

删除$comment.focus;仍然保持自动完成打开,允许用户实际选择另一个元素。这比每次执行ajax调用要好得多,仅css选项非常好。当我试图在inspector中检查autocomplete小部件时,我使用它来防止它被关闭。
close: function (event, ui) {
  $input.autocomplete('widget').show();
}
$input.on('blur', function () {
  $input.autocomplete('widget').hide();
});