覆盖_renderItem和_renderMenu
如何仅为#global-search
覆盖_renderItem?
$("#global-search").autocomplete({ // })._renderMenu = function(ul, items) { var self = this; ul.append('
'); $.each( items, function( index, item ) { self._renderItem( ul.find("table"), item ); }); });
请记住,您可以通过data
jQuery UI工厂方法( _create
)创建的窗口小部件的特定实例:
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('
'); $.each( items, function( index, item ) { self._renderItem( ul.find("table"), item ); }); };
你有几个选择:
-
您可以覆盖
_renderItem
函数,以便它在内部进行一些对象比较,并调用原始的_renderItem
函数或执行自定义代码。 -
您可以创建一个inheritance
autocomplete
的新窗口小部件,并覆盖其中的function。