From db1ee1af85ea2f0671f370e325d4ba5b971b2dd0 Mon Sep 17 00:00:00 2001 From: TJ VanToll Date: Thu, 13 Jun 2013 13:47:07 -0700 Subject: [PATCH] Menu: Reset ui-menu-icons class in refresh. Fixes #9377: Menu: Refreshing should recheck for menu icons (cherry picked from commit 91b7b9f9ab2e5baa31e37f34600457599409e161) --- tests/unit/menu/menu_methods.js | 13 +++++++++++++ ui/jquery.ui.menu.js | 2 ++ 2 files changed, 15 insertions(+) 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" ) -- 2.39.5