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

もう 1 つ: 複数のオートコンプリート フィールドを使用しています。したがって、グローバルに設定することはできません。たとえば、 $.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 に答える