From: TJ VanToll Date: Thu, 13 Jun 2013 20:47:07 +0000 (-0700) Subject: Menu: Reset ui-menu-icons class in refresh. Fixes #9377: Menu: Refreshing should... X-Git-Tag: 1.10.4~72 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=db1ee1af85ea2f0671f370e325d4ba5b971b2dd0;p=jquery-ui.git Menu: Reset ui-menu-icons class in refresh. Fixes #9377: Menu: Refreshing should recheck for menu icons (cherry picked from commit 91b7b9f9ab2e5baa31e37f34600457599409e161) --- diff --git a/tests/unit/menu/menu_methods.js b/tests/unit/menu/menu_methods.js index c51d123c2..5d390c0d7 100644 --- a/tests/unit/menu/menu_methods.js +++ b/tests/unit/menu/menu_methods.js @@ -69,6 +69,19 @@ test( "refresh submenu", function() { equal( element.find( "ul:first .ui-menu-item" ).length, 4 ); }); +test( "refresh icons (see #9377)", function() { + expect( 3 ); + var element = $( "#menu1" ).menu(); + ok( !element.hasClass( "ui-menu-icons") ); + element.find( "li:first a" ).html( 'Save' ); + element.menu( "refresh" ); + + ok( element.hasClass( "ui-menu-icons" ) ); + element.find( "li:first a" ).html( "Save" ); + element.menu( "refresh" ); + ok( !element.hasClass( "ui-menu-icons") ); +}); + test( "widget", function() { expect( 2 ); var element = $( "#menu1" ).menu(), diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index e10406500..d93ef581d 100644 --- a/ui/jquery.ui.menu.js +++ b/ui/jquery.ui.menu.js @@ -282,6 +282,8 @@ $.widget( "ui.menu", { icon = this.options.icons.submenu, submenus = this.element.find( this.options.menus ); + this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ); + // Initialize nested menus submenus.filter( ":not(.ui-menu)" ) .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )