更改jQuery UI自动完成位置 – 弹出,而不是向下

我在页面底部放置了一个自动完成框,我希望结果在文本框中弹出,而不是在下面。 我怎样才能做到这一点?

以另一种方式放置@ mvonlintel的答案,在窗口小部件声明中设置建议菜单位置:

$('selector').autocomplete( { position: { my: "left bottom", at: "left top", collision: "flip" }, . . }); 

您可以使用jQuery UI Position实用程序 。 这是一个例子:

 $(".ui-autocomplete").position({ my: "left bottom", at: "left top", of: $("#quick_add"), collision: "flip flip" }); 

似乎我已经能够回答我自己的问题了。 如果有人得到它,我愿意接受更好的解决方案。 我将此添加到自动完成启动…基本上它将打开的框重新定位到新的偏移量。

 open: function(event, ui) { var autocomplete = $(".ui-autocomplete"); var oldTop = autocomplete.offset().top; var newTop = oldTop - autocomplete.height() - $("#quick_add").height() - 10; autocomplete.css("top", newTop); } 

当前版本的jQuery UI允许为Autocomplete小部件提供一个带有选项的位置对象,其属性与上面提到的Position小部件相同。 这样您就可以根据需要使用它来定位建议列表。