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

时间:2011-01-18 20:20:32

标签: jquery jquery-ui autocomplete

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

4 个答案:

答案 0 :(得分:27)

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

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

答案 1 :(得分:17)

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

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

答案 2 :(得分:9)

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

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);
}

答案 3 :(得分:5)

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