jquery UI团队有一个blog on how to replace the legacy autocomplete and justifies that it can replicate all of the old features and options。根据我的测试,我不认为他们可以复制:
我看到this questions on how to replicate some of the legacy autocomplete中的this plugin个选项,并且有一个选定的答案,但它没有解决这些问题。
jquery ui folks have an example of replicating selectFirst in the new autocomplete,但除非我弄错了,否则它只适用于本地数据源(不是远程数据源,因为在调用事件之前菜单通常没有填写)。
我是否遗漏了某些内容,或者这些场景在jquery ui autocomplete中根本不受支持?
答案 0 :(得分:6)
实际上支持这些场景,但您必须扩展ui.autocomplete小部件以实现所需的行为。实现selectFirst功能的快速示例:
$.widget( "ui.autocomplete2", $.ui.autocomplete, {
_renderMenu: function( ul, items ) {
var self = this;
$.each( items, function( index, item ) {
self._renderItem( ul, item );
});
// setTimeout is needed because jQueryUI automaticaly removes
// active item just after menu rendering
setTimeout( function(){
self.menu.activate(
// fake event object. Needed to avoid jQueryUI error
// (unsafe property access)
{'type':'fake'},
ul.find(':first') );
}, 1);
}
});
注意:始终检查新窗口小部件是否仍与新版本jQuery UI兼容!
更新:示例必须在此处找到mustMatch实现:http://jqueryui.com/demos/autocomplete/combobox.html