Принудительно перемещать автозаполнение интерфейса jQuery? - PullRequest
0 голосов
/ 13 октября 2010

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

Я пробовал это:

    $('#search').autocomplete('widget').css({
        'margin-left': -200
        //or
        left: 200
    });

Я также пытался добавить!не влияет.

Я также пытался добавить css в .ui-autocomplete, без какого-либо результата.

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

Спасибо, Марти Лэйн

Ответы [ 3 ]

1 голос
/ 04 марта 2011

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

1 голос
/ 14 октября 2010

Вы можете предоставить дополнительную функцию для open (), чтобы сделать это:

Пример:

 $("#search").autocomplete({ 
                            open: function(event, ui) 
                                  {$(this).next().css('left',
                                    function(index, value) {return 200+parseInt(value)});
                                  }
    });

... установит позицию на 200px слева от позиции, в которой она была бы обычно

0 голосов
/ 13 июня 2012

Как и NeoSwf, я обнаружил, что мое автозаполнение вставляется в нижней части DOM.В зависимости от $(this).next() найти его хрупко.Вместо this я рекомендую использовать что-то более конкретное, например 'ul.ui-autocomplete'.Вот CoffeeScript для моей версии:

jQuery ->
  $('#search').autocomplete
    open: (event, ui) ->
      $('ul.ui-autocomplete').css('left', (index, value) ->
        return 200 + parseInt(value))
...