如何仅为#global-search
覆盖_renderItem?
$("#global-search").autocomplete({
//
})._renderMenu = function(ul, items) {
var self = this;
ul.append('<table class="ac-search-table"></table>');
$.each( items, function( index, item ) {
self._renderItem( ul.find("table"), item );
});
});
答案 0 :(得分:13)
请记住,您可以通过_create
解决jQuery UI工厂方法(data
)创建的窗口小部件的特定实例:
var widgetInst = $("#global-search").autocomplete({}).data('ui-autocomplete');
...或者,自jQuery UI 1.12起,通过instance()辅助方法:
var widgetInst = $("#global-search").autocomplete('instance');
因此,您可以使用自己的方法覆盖其方法:
widgetInst._renderMenu = function(ul, items) {
var self = this;
ul.append('<table class="ac-search-table"></table>');
$.each( items, function( index, item ) {
self._renderItem( ul.find("table"), item );
});
};
答案 1 :(得分:0)
您有几个选择:
您可以覆盖_renderItem
函数,以便在内部进行一些对象比较,并调用原始_renderItem
函数或执行自定义代码。
您可以创建一个继承自autocomplete
的新窗口小部件,并覆盖其中的功能。