如何使用jquery-ui selectmenu扩展方法(_renderItem,_renderMenu等)

时间:2014-11-06 07:07:44

标签: jquery-ui jquery-ui-widget-factory jquery-ui-selectmenu

JQuery-UI selectmenu小部件有一些扩展方法,可用于自定义下拉选择菜单的呈现/样式。 从 api docs ,可以使用以下小部件扩展方法来自定义菜单:   - _renderItem(ul,item)   - _renderMenu(ul,items)

我想要实现的是,仅针对selectmenu小部件的一个实例覆盖上述扩展方法,而不是全局级别。 widget factory docs确实有关于扩展窗口小部件的特定实例的示例(示例位于此页面的底部),但在将其应用于selectmenu扩展方法方面没有任何成功。 我们非常感谢您对此问题的任何见解。

2 个答案:

答案 0 :(得分:2)

啊,找到了使用扩展方法的方法。这是一个例子:

$('select-menu-id').selectmenu(options).data("ui-selectmenu")._renderItem = function(event, ui) {
  // override with custom logic for rendering each select option
}

使用@Ben Olson在本文中自定义自动完成小部件的方式: Customize the jQuery UI AutoComplete Drop Down Select Menu

答案 1 :(得分:1)

不是使用.data('ui-selectmenu')来获取对象的访问权限(如@kashif_shamaz的答案所示),而是API provides the instance() method来公开对象。好处是这种方法是API的一部分,因此与通过data()方法的基于字符串的访问相比,在未来潜在的变化期间应该更加稳定和更好地记录。

使用如下:

$('#select-menu-id').selectmenu('instance')._renderItem = function(event, ui) {
    // override with custom logic for rendering each select option
}