В опции «источник» я получаю с помощью ajax результаты + 1 настраиваемый текст заметки с информацией о возможных результатах. Нравится: «Показать 2 из 3456 результатов». Это всего лишь информация для пользователя.
Для последней записи в списке -ul- я бы не обработал следующие события: keyup, keydown, pageup и pagedown.
Для этого я в опции "открыть" установил следующее:
open: function(event, ui) {
$("ul.ui-autocomplete.ui-menu li:last").removeClass("ui-menu-item").removeAttr("role").html('Show 2 of 3456 results');
},
HTML теперь выглядит так:
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; top: 39px; left: 79px; display: block; width: 273px;"> <li class="ui-menu-item" role="menuitem"> <a class="ui-corner-all" tabindex="-1">Result 1</a> </li> <li class="ui-menu-item" role="menuitem"> <a class="ui-corner-all" tabindex="-1">Result 2</a> </li> <li class="">Show 2 of 3456 results</li> </ul>
Это работает, если дает хотя бы один реальный результат, а не только текст последней заметки.
Но что, если результат недоступен и только текст примечания (последний элемент) «Нет результатов», тогда я получаю сообщение об ошибке в событиях: нажатие клавиши, нажатие клавиши, переход на страницу и просмотр страницы.
Ошибка в Firebug: item.offset () имеет значение null
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; top: 39px; left: 79px; display: block; width: 273px;"> <li class="">No Results</li> </ul>
Что я могу сделать, чтобы добавить настраиваемый -li- в конец списка, который нельзя выбрать?
jQuery-UI 1.8.13