Я включил плагин автозаполнения jquery ui в следующую структуру:
<li class="search">
<input type="text" class="searchfield" name="searchfield" value="Search for Products" />
</li>
мой javascript для этого поля ввода выглядит так:
<script type="text/javascript">
function addSearchFieldFunctionality() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$('.searchfield').each(function () {
$(this).autocomplete({
source: availableTags,
minLength: 1
}).data("autocomplete")._renderItem = function(ul, item) {
//console.log(item);
var a = $('<a>', {
href: item.value,
text: item.label,
"class" : "mySearchClass"
});
var b = $('<a>', {
href: item.value,
text: "Add", style: "float:right"});
var $li = $('<li></li>', {style:"width:100%"});
return $li.add(a).appendTo(ul);
};
});
}
</script>
Я загружаю эту функциюна документ готов.по какой-то причине, если начать печатать, например, первые три буквы элемента, я получаю список результатов.как только я нажимаю кнопку «keydown» на ключевом слове, я получаю следующую ошибку в консоли chrome (последняя версия):
Uncaught TypeError: Cannot read property 'top' of null
a.widget.activate jquery-ui.min.js:12
a.widget.move jquery-ui.min.js:12
a.widget.next jquery-ui.min.js:12
a.widget._move jquery-ui.min.js:12
a.widget._create.element.addClass.attr.attr.bind.bind.d jquery-ui.min.js:12
f.event.dispatch jquery-1.7.1.min.js:3
f.event.add.h.handle.i
Я использую версию 1.7.1 jQuery и версию 1.8.12 из jquery UI
На демонстрационной странице автозаполнения jquery ui клавиатура работает хорошо.
Есть идеи, что не так с моим созвездием?
Не имеет значения использовать удаленные или локальные данные.
С наилучшими пожеланиями, Рамо