私はjQuery 1.8.3でJquery-uiバージョン1.10.3を使用しており、オートコンプリートサーバーフェッチによってフェッチされたデータのカスタム表示を実装しようとしています:
これは、レンダリングのオーバーライドを行う部分です。
$(#"...").autocomplete(...)
.data( "ui-autocomplete")._renderItemData = function( ul, item : Users.BriefUserDescriptor) {
ul.data('ui-autocomplete-item', item);
return $( "<li>" )
.data('ui-autocomplete-item', item )
.append( "<p>" + item.fullName + "<br>" + item.emailAddress+ "</p>" )
.appendTo( ul );
};
これは機能します。要素は、フォーカスに関する問題を除いて、希望どおりに表示されます。
focus: function( event, ui) {
var currentUser : Users.BriefUserDescriptor = ui.item;
$("#invitePersonInput" ).val(currentUser.fullName);
return false;
},
これにより、常にエラーが発生します。つまり、currentUser (ui.item) が未定義です。
「ui-autocomplete-item」、「uiAutocomplete」などのいくつかの組み合わせを試しましたが、これまでのところ、この点で機能しているものはなく、メニューの入力を完全に実行できなかったものさえありました。
どんなヒントも素晴らしいでしょう。