覆盖_renderItem和_renderMenu [英] Override both _renderItem and _renderMenu

查看:94
本文介绍了覆盖_renderItem和_renderMenu的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何仅对#global-search覆盖_renderItem?

How can I override _renderItem for only #global-search?

$("#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 );
   });
});

推荐答案

请记住,您可以通过data解决由jQuery UI工厂方法(_create)创建的窗口小部件的特定实例:

Remember that you can address the particular instance of the widget created by jQuery UI factory method (_create) via data:

var widgetInst = $("#global-search").autocomplete({}).data('ui-autocomplete');

...,或者,从jQuery UI 1.12开始,通过 instance()辅助方法:

... or, since jQuery UI 1.12, via instance() helper method:

var widgetInst = $("#global-search").autocomplete('instance'); 

因此,您可以使用自己的方法覆盖其方法:

Thus you're able to override its methods with your own:

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 );
  });
};

这篇关于覆盖_renderItem和_renderMenu的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆