Skip to content

Commit 2c3d311

Browse files
committed
Menu: Allow changing icons option after creation. Fixes #8927 - Menu: Can't change icons option after init
1 parent 0d53fbf commit 2c3d311

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

tests/unit/menu/menu_options.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,12 @@ test( "{ disabled: false }", function() {
4141
});
4242

4343
test( "{ icons: default }", function() {
44-
expect( 1 );
44+
expect( 2 );
4545
var element = $( "#menu2" ).menu();
4646
equal( element.find( ".ui-menu-icon" ).attr( "class" ), "ui-menu-icon ui-icon ui-icon-carat-1-e" );
47+
48+
element.menu("option", "icons.submenu", "ui-icon-triangle-1-e");
49+
equal( element.find( ".ui-menu-icon" ).attr( "class" ), "ui-menu-icon ui-icon ui-icon-triangle-1-e" );
4750
});
4851

4952
test( "{ icons: { submenu: 'custom' } }", function() {

ui/jquery.ui.menu.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,15 @@ $.widget( "ui.menu", {
343343
}[ this.options.role ];
344344
},
345345

346+
_setOption: function( key, value ) {
347+
if ( key === "icons" ) {
348+
this.element.find( ".ui-menu-icon" )
349+
.removeClass( this.options.icons.submenu )
350+
.addClass( value.submenu );
351+
}
352+
this._super( key, value );
353+
},
354+
346355
focus: function( event, item ) {
347356
var nested, focused;
348357
this.blur( event, event && event.type === "focus" );

0 commit comments

Comments
 (0)