Tud*_*scu 5 jquery-ui jquery-ui-autocomplete
我正在使用Jquery-ui版本1.10.3和jQuery 1.8.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 );
};
Run Code Online (Sandbox Code Playgroud)
这有效.除了关注焦点的问题外,元素按我希望的方式显示:
focus: function( event, ui) {
var currentUser : Users.BriefUserDescriptor = ui.item;
$("#invitePersonInput" ).val(currentUser.fullName);
return false;
},
Run Code Online (Sandbox Code Playgroud)
这总是会触发错误,即currentUser(ui.item)未定义.
我已经尝试过几种'ui-autocomplete-item','uiAutocomplete'等组合,但到目前为止还没有人在这方面工作过,有些甚至都没能完成菜单填写.
任何提示都会很棒.
好的,终于找到了问题.有必要在上面添加一个'ui-menu-item'类
覆盖renderItem而不是renderItemData似乎也是正确的方法.
它应该看起来像:
$(#"...").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>" )
.addClass('ui-menu-item')
.appendTo( ul );
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3306 次 |
最近记录: |