26

自从我从 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 会起作用,但会影响我所有的自动完成。

4

1 回答 1

70

改用ui-autocomplete应该可以解决您的问题。

$("#lexicon-search-input")
    .autocomplete({
    ...
    }).data("ui-autocomplete")._renderItem = customItemRenderer;

请参阅文档以获取有关如何使用的教程_renderItem(尤其是源代码)

如果您想_renderItem使用类创建多个自动完成功能,yourClass只需在create事件中使用它

$('.yourClass').autocomplete({
    create: function() {
        $(this).data('ui-autocomplete')._renderItem ....
    }
});

请参阅我关于该主题的另一个答案

于 2013-07-10T10:53:39.620 回答