在浏览器调整大小时重新定位jQuery UI自动完成

3en*_*3en 6 javascript jquery jquery-ui jquery-autocomplete jquery-ui-autocomplete

如果您打开自动填充下拉菜单并调整浏览器窗口大小,则自动填充下拉列表不会重新定位会出现问题.此视频中突出显示:http://www.youtube.com/watch?v = d7rZYH0DgWE

我查看了文档,找不到可以在$(window).resize()函数调用中调用的重定位方法(在jquery-ui文档http://jqueryui.com/demos/autocomplete中).

这有优雅的灵魂吗?

小智 8

我建议只关闭页面调整大小的结果.

$(window).resize(function() {
    $(".ui-autocomplete").css('display', 'none');
});
Run Code Online (Sandbox Code Playgroud)

当用户改变窗口的宽度时,它将消失,如果再次键入,它将重新出现,应该正确定位.


3en*_*3en 7

再看一遍,解决此问题的一种方法就是调用自动填充字段来搜索resize:

例如

$(window).resize(function() {
    $( "#autocomplete-field" ).autocomplete( "search" );
});
Run Code Online (Sandbox Code Playgroud)

这将重新定位自动完成下拉列表.

您可能还希望确保自动完成缓存结果,以便在再次搜索时不会访问数据库.另一件需要考虑的事情是在超时函数中调用自动完成("搜索")以提高ui响应性跨浏览器窗口调整大小事件 - JavaScript/jQuery