Подтвердить что ты не робот

Изменение позиции автозаполнения jQuery UI - всплывающее меню, а не вниз

Я помещаю блок автозаполнения в нижней части моей страницы, и мне хотелось бы, чтобы результаты отображались поверх текстового поля, а не ниже. Как я могу это сделать?

4b9b3361

Ответ 1

Кажется, я уже мог ответить на свой вопрос. Я открыт для лучшего решения, если кто-то это получил. Я добавил это к началу автозаполнения. По существу, он привязывает поле к открытому к новому смещению.

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

Ответ 2

Помещая @mvonlintel ответ другим способом, установите положение меню предложений в объявлении виджета:

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

Ответ 3

Вы можете использовать утилиту jQuery UI Позиция. Вот пример:

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

Ответ 4

текущая версия пользовательского интерфейса jQuery позволяет предоставить виджет Autocomplete позиционного объекта с параметрами с теми же свойствами, что и виджет Position, упомянутый выше. поэтому вы можете использовать это, чтобы разместить список предложений, как вам нравится.