对于如何使用jQuery UI的selectmenu扩展方法(_renderItem,_render

2019-10-21 06:19发布

jQuery的-UI selectmenu小部件具有可用于自定义下拉选择菜单的渲染/样式一些推广方法。 从API文档 ,下面的小部件扩展方法可用于自定义菜单: - _renderItem(UL,项目) - _renderMenu(UL,资料)

我想要实现的是,覆盖上面的扩展方法只是一个selectmenu小部件的情况下,而不是在全球范围内。 该部件工厂文档确实有例如大约延伸的小部件的特定实例(例如在这个页面的底部),但还没有在应用该到selectmenu扩展方法取得任何成功。 针对此问题的任何见解是非常赞赏。

Answer 1:

啊,发现使用的扩展方法的方式。 下面是一个例子:

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

使用的方式自动完成构件是由@Ben奥尔森在这篇文章中自定义: 自定义jQuery UI的自动完成下拉选择菜单



Answer 2:

而不是使用.data('ui-selectmenu')来访问所述对象(如在由@kashif_shamaz答案所建议的),所述API提供的instance()方法 ,以暴露该对象。 的好处是,该方法是API的一部分,并且因此应该是更稳定的,并且在未来的潜在变化更好文件证明,相比于通过基于字符串的访问data()方法。

使用方法如下:

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


文章来源: How to use jquery-ui selectmenu extension methods(_renderItem, _renderMenu etc)