我遇到了jQuery Autocomplete的问题。我正在定制它 显示两种项目:
后端完成所有工作;自动完成功能只需两个列表。
图片可以更好地解释:
http://shot.ninjaloot.se/20120412.141112.png(数据只是在开发时使用虚拟数据,并且样式尚未完成)
渲染工作时,选择(点击或其他) items会抛出一个难以调试的异常:
TypeError: 'undefined' is not an object (evaluating 'ui.item.data')
据我了解,menu.selected函数被赋予ui
参数
它有一个未定义的item
键。
为什么会发生这种情况,我该怎么办呢?如果我发表评论 我的自定义渲染器,选择工作。
这是我的自定义渲染器功能。它被逐字逐句解除了 UI源文件然后扩展到我的自定义haxing。
$input.data("autocomplete")._renderItem = function(ul, item) {
var cls = 'ui-menu-item';
if(item.label === null) {
cls += ' center disabled';
item.label = '-- perhaps thou meaneth --';
}
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a class='ui-corner-all'>" + item.label + "</a>")
.addClass(cls)
.appendTo(ul);
};
如果需要更多代码,我很乐意提供它!
答案 0 :(得分:1)
SELF-ANSWER!我自己解决了这个问题。显然,如果手动添加类“ui-menu-item”,菜单项将被视为已完成,并且不会进行任何后处理,后处理对于功能至关重要。如果我不手动添加类,它就可以工作。