Skip to content

Commit 91b7b9f

Browse files
committed
Menu: Reset ui-menu-icons class in refresh. Fixes #9377: Menu: Refreshing should recheck for menu icons
1 parent b5c41a2 commit 91b7b9f

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

tests/unit/menu/menu_methods.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,19 @@ test( "refresh submenu", function() {
6969
equal( element.find( "ul:first .ui-menu-item" ).length, 4 );
7070
});
7171

72+
test( "refresh icons (see #9377)", function() {
73+
expect( 3 );
74+
var element = $( "#menu1" ).menu();
75+
ok( !element.hasClass( "ui-menu-icons") );
76+
element.find( "li:first a" ).html( '<span class="ui-icon ui-icon-disk"></span>Save</a>' );
77+
element.menu( "refresh" );
78+
79+
ok( element.hasClass( "ui-menu-icons" ) );
80+
element.find( "li:first a" ).html( "Save" );
81+
element.menu( "refresh" );
82+
ok( !element.hasClass( "ui-menu-icons") );
83+
});
84+
7285
test( "widget", function() {
7386
expect( 2 );
7487
var element = $( "#menu1" ).menu(),

ui/jquery.ui.menu.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,8 @@ $.widget( "ui.menu", {
282282
icon = this.options.icons.submenu,
283283
submenus = this.element.find( this.options.menus );
284284

285+
this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length );
286+
285287
// Initialize nested menus
286288
submenus.filter( ":not(.ui-menu)" )
287289
.addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )

0 commit comments

Comments
 (0)