В опции «source» я получаю с ajax результаты + 1 пользовательский текст заметки с информацией о возможных результатах.Нравится: «Показать 2 из 3456 результатов».Это только информация для пользователя.
Для последней записи в списке -ul-, я бы не обработал следующие события: keyup, keydown, pageup и pagedown.
Для этого, Я в опции "open" установил это:
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>
Это работает, если это дает хотя бы один реальный результат, а не толькотекст последней заметки.
Но что, если нет результатов, а только текст заметки (последний элемент) «Нет результатов», я получаю сообщение об ошибке в событиях: keyup, keydown, pageup и pagedown.
Ошибка в 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