Изменение положения окна результатов автозаполнения пользовательского интерфейса Jquery - PullRequest
23 голосов
/ 07 июня 2011

Я использую плагин автозаполнения пользовательского интерфейса Jquery для инструмента прямого поиска поисковых запросов. Он работает без проблем, за исключением того, что я не могу переместить окно результатов. Мне в основном нужно переместить его на 20 пикселей влево и на 4 пикселя вниз. Я попытался перезаписать CSS JQuery UI, но не смог изменить положение окна.

Любая помощь от кого-то, кто сталкивался с этой проблемой, будет принята с благодарностью.

Ответы [ 4 ]

25 голосов
/ 08 июня 2011

Вот один из способов сделать это, нажав на событие open и изменив положение меню, когда это событие произойдет:

$("#autocomplete").autocomplete({
    appendTo: "#results",
    open: function() {
        var position = $("#results").position(),
            left = position.left, top = position.top;

        $("#results > ul").css({left: left + 20 + "px",
                                top: top + 4 + "px" });

    }
});

Я также использую опцию appendTo, чтобылегко найти ul, который содержит меню.Вы можете сделать это без этой опции.

Вот рабочий пример: http://jsfiddle.net/9QmPr/

21 голосов
/ 14 августа 2012

Этого легко достичь с помощью опции position , в частности свойства offset :

$('#myField').autocomplete({
    source: …,
    position: {
        offset: '20 4' // Shift 20px to the left, 4px down.
    }
});
17 голосов
/ 20 ноября 2011

Примерно так тоже будет работать

open : function(){
        $(".ui-autocomplete:visible").css({top:"+=5",left:"-=2"});
    },
1 голос
/ 23 июня 2015

Кажется, лучше использовать эту опцию

appendTo: "#autocomplete_target_wrapper",
menudocking: {
    menucorner: "right top",
    inputcorner: "right bottom",
    collision: "none"
}

Официальная ссылка https://forum.jquery.com/topic/autocomplete-menu-docking-position

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