更改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小部件相同。 这样您就可以根据需要使用它来定位建议列表。