1

JQuery-UI selectmenu小部件具有一些擴展方法,可用於自定義下拉選擇菜單的渲染/樣式。 從 api docs,下面的小部件擴展方法可用於自定義菜單: - _renderItem(UL,項目) - _renderMenu(UL,項目)如何使用jquery-ui selectmenu擴展方法(_renderItem,_renderMenu等)

我想要實現的是,覆蓋上面的擴展方法僅用於selectmenu小部件的一個實例,而不是全局級別。 widget factory docs確實有關於擴展小部件的特定實例的示例(示例位於此頁面的底部),但在將其應用於selectmenu擴展方法方面沒有任何成功。 對此問題的任何見解都非常感謝。

回答

2

啊,找到了使用擴展方法的方法。這裏有一個例子:

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

使用自動完成構件是由@Ben奧爾森在這篇文章中的定製方式: Customize the jQuery UI AutoComplete Drop Down Select Menu

0

而不是使用.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 
}