2

JQuery-UI selectmenu ウィジェットには、ドロップダウン選択メニューのレンダリング/スタイリングをカスタマイズするために使用できるいくつかの拡張メソッドがあります。API ドキュメントから、次のウィジェット拡張メソッドを使用してメニューをカスタマイズできます: - _renderItem( ul, item ) - _renderMenu( ul, items )

私が達成したいのは、グローバルレベルではなく、selectmenu ウィジェットの 1 つのインスタンスに対して上記の拡張メソッドをオーバーライドすることです。ウィジェット ファクトリ ドキュメントには、ウィジェットの特定のインスタンスの拡張に関する例があります (例はこのページの下部にあります) が、それを selectmenu 拡張メソッドに適用することに成功していません。この問題についての洞察は大歓迎です。

4

3 に答える 3

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
}
于 2015-09-12T13:56:52.110 に答える
2

ああ、拡張メソッドを使用する方法を見つけました。次に例を示します。

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

この記事で @Ben Olson がオートコンプリート ウィジェットをカスタマイズした方法を使用しました: jQuery UI オートコンプリート ドロップダウン選択メニューをカスタマイズする

于 2014-11-06T07:32:17.837 に答える