web-dev-qa-db-ja.com

jQueryUIバージョン1.10オートコンプリート-_renderItemの設定方法

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では機能しません。

もう1つ:複数のオートコンプリートフィールドを使用しています。したがって、グローバルに設定することはできません。たとえば、$。ui.autocomplete.prototype._renderItem = customRenderItemは機能しますが、すべてのオートコンプリートに影響します。

25
Marco

代わりにui-autocompleteを使用すると、問題が解決するはずです。

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

_renderItem(特にソースコード)の使用方法に関するチュートリアルについては、 documentation を参照してください

クラスyourClassで複数のオートコンプリート用の_renderItem関数を作成する場合は、単に createevent で使用します

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

そのトピックに関する別の answer を参照してください。

65
SirDerpington