在選項「源」中,我用ajax獲得結果+ 1個自定義註釋文本,其中包含有關可能結果的信息。如:「顯示3456個結果中的2個」。它只是用戶的一個信息。jQuery自動完成不選擇項目
對於-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>
這工作,如果它至少給最小的一個真實的結果,而不是隻有最後一個註釋文本。
但是如果沒有結果可用並且只有註釋文本(最後一項)「沒有結果」,那麼我會在事件中看到一條錯誤消息: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
如果黑客行得通,那麼我傾向於稱他們爲'無證編碼的巧妙點':) – 2011-08-03 13:19:00
只要你的自定義'li'沒有'.ui-menu-item'類,它就不應該觸發點擊時自動完成選擇事件。 – nickb 2011-12-19 23:28:33