自从我从jqueryui 1.8.1切换到1.10.x后,我意识到我的自定义项目渲染器不再起作用了:
Uncaught TypeError: Cannot set property '_renderItem' of undefined
新的jqueryui版本有什么不同?
这是我的代码:
$("#lexicon-search-input")
.autocomplete({
...
}).data("autocomplete")._renderItem = customItemRenderer;
这是在jqueryui 1.8.1上工作,但在1.10.3上没有。
还有一件事:我使用多个自动填充字段。因此,我不能全局设置它。例如,$ .ui.autocomplete.prototype._renderItem = customRenderItem可以工作,但会影响我的所有自动完成。
答案 0 :(得分:64)
使用ui-autocomplete
可以解决您的问题。
$("#lexicon-search-input")
.autocomplete({
...
}).data("ui-autocomplete")._renderItem = customItemRenderer;
有关如何使用_renderItem
(特别是源代码)的教程,请参阅documentation
如果您想为类_renderItem
的多个自动填充功能创建yourClass
功能,请在create
event
$('.yourClass').autocomplete({
create: function() {
$(this).data('ui-autocomplete')._renderItem ....
}
});
在该主题上查看我的另一个answer。