问题描述
|
在选项\“ source \”中,我用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现在看起来像这样:
- 结果1 li>
- 结果2 li>
- 显示3456个结果中的2个 li>
ul>
如果它至少给出一个实际结果,而不仅仅是最后一个注释文本,则此方法有效。
但是,如果没有结果可用,而只有注释文本(最后一项)\“没有结果”,那我会在以下事件中收到错误消息:keyup,keydown,pageup和pagedown。
Firebug中的错误:item.offset()为null
- 没有结果 li>
ul>
我该怎么做才能将自定义-li-添加到列表末尾并且无法选择?
jQuery-UI 1.8.13
解决方法
我发现,如果您的
元素不包含li
标记,则此小部件将抱怨。我意识到这使得它可以选择,所以您要么必须针对您的情况扩展该类,要么创建一个CSS规则以确保a
不会处于选定状态(这有点麻烦,我承认) , 而不是搞砸CSS选择器,为什么不绑定到to4ѭ和li
事件来检查要添加到对象的自定义数据(可通过这些事件的with6ѭ参数获得)?您最终将得到以下内容:change
请注意,$(function() { $(\"#acInput\").autocomplete({ source: availableTags,select: function(event,ui) { // if it\'s your info item,then event.preventDefault(); },change: function(event,then event.preventDefault(); } }); });
只是停止了该事件。在某些情况下(使用键盘浏览列表时),它将使用项目的值填充输入。如果您确定所选项目或将要更改为的值实际上是您的数据项,则希望测试重置文本框的值。preventDefault()
- 没有结果 li>
ul>
我该怎么做才能将自定义-li-添加到列表末尾并且无法选择?
jQuery-UI 1.8.13