添加到jquery自动完成列表的项目无法突出显示或选中

时间:2014-09-25 00:45:39

标签: jquery autocomplete selection

我使用以下代码添加项目"其他"到自动填充列表:

    open: function(event, ui) {
        $('.ui-autocomplete').append('<li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1"><strong>Other</strong></a></li>');
    },

项目&#34;其他&#34;出现在给用户的每个列表的末尾,作为对其键入的内容的响应,但是当鼠标移过它并且在单击时没有被选中时,该项目不会突出显示。我需要做些什么来确保它被突出显示并在点击时可以选择?

我正在使用Firebug将代码跟踪到下面显示的select函数中:

    select: function( event, ui ) {
        if (ui.item) {
            var value = ui.item.type + ui.item.id;
            var name = ui.item.acronym;
            addContent(value, name);
            event.preventDefault();
            $(this).val('');
        }
    },

当我点击&#34; Other&#34;以外的任何项目时,select函数执行时没有错误,并且单击的项目将被正确处理。但是当我点击&#34;其他&#34; item,我收到一条错误消息&#34; f.item&#34;在第322行的jQuery UI 1.8.14min.js中为null。

因此,除了通过open函数添加li元素之外,我还需要将对象添加到映射到li的内容中。我该怎么做?

非常感谢任何协助。

由于

1 个答案:

答案 0 :(得分:0)

这个JSFiddle显示它工作正常:The Fiddle

是否有可能在运行时有一些其他div / DOM对象重叠?

var test = function() {   
    
        $('.ui-autocomplete').append('<li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1"><strong>Other</strong></a></li>');
    
}

test();