Если автозаполнение находится внизу страницы, параметры автозаполнения всплывают над текстовой областью. - PullRequest
0 голосов
/ 08 декабря 2011

Мы используем этот плагин автозаполнения: jQuery AutoComplete

Однако существует проблема, когда поле ввода находится внизу страницы. Список автозаполнения (тот, который появляется после того, как вы начинаете печатать) меняет свою позицию, поэтому вместо того, чтобы опускать текстовое поле, он вместо этого плавает над текстовым полем. Это нормально, если в списке много предметов. Однако, если вариантов мало, а высоты недостаточно, между полем ввода и полем автозаполнения существует огромный разрыв.

Чтобы было понятнее, вот изображение:

Auto Complete Box Problem

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

Я думаю, что это часть jQuery, которая делает это:

// reposition the results div accordingly to the search field

function repositionResultsDiv()
{
    // get the field position
    var sf_pos    = acSearchField.offset();
    var sf_top    = sf_pos.top;
    var sf_left   = sf_pos.left;

    // get the field size
    var sf_height = acSearchField.height();
//  var sf_width  = acSearchField.width();
    var sf_width  = 285;

    // apply the css styles - optimized for Firefox
    acResultsDiv.css("position","absolute");
    acResultsDiv.css("zIndex", 1000);
    acResultsDiv.css("left", sf_left - 2);
    acResultsDiv.css("top", sf_top + sf_height + 5);
    acResultsDiv.css("width", sf_width - 2);
}

По-видимому, верхнее значение смещения должно быть больше (чтобы оно двигалось дальше вниз), но, похоже, оно не рассчитывается правильно.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2011

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

0 голосов
/ 08 декабря 2011

Есть атрибут «position», которым вы можете управлять.Вы можете делать сложные вещи или простые вещи.http://docs.jquery.com/UI/Autocomplete#option-position

Обратите внимание, что jQuery по умолчанию пытается найти позицию, которая не сталкивается.Если вы измените это, убедитесь, что вы не измените это к худшему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...