Опция appendTo
действительно работает, как и ожидалось, и если вы проверяете в DOM, элемент результатов <ul>
будет присоединен к элементу. Однако из-за абсолютного позиционирования, сгенерированного jQueryUI, список по-прежнему отображается непосредственно под <input>
.
Тем не менее, вы можете переопределить внутренний _renderItem
, чтобы напрямую добавить результаты к совершенно другому элементу, например:
HTML
<input id="autocomplete"/>
<div class="test">Output goes here:<br/><ul></ul></div>
JavaScript
$('input').autocomplete({
search: function(event, ui) {
$('.test ul').empty();
},
source: ["something", "something-else"]
}).data('autocomplete')._renderItem = function(ul, item) {
return $('<li/>')
.data('item.autocomplete', item)
.append(item.value)
.appendTo($('.test ul'));
};
Я также создал демо , чтобы продемонстрировать это. Обратите внимание, что в последней библиотеке jQuery не было полностью протестировано jQueryUI, поэтому я использую предыдущую версию, которая позволяет мне выбрать непосредственное включение jQueryUI в опции jsFiddle.