]> source.dussan.org Git - jquery-ui.git/commitdiff
Menu: Reset ui-menu-icons class in refresh. Fixes #9377: Menu: Refreshing should...
authorTJ VanToll <tj.vantoll@gmail.com>
Thu, 13 Jun 2013 20:47:07 +0000 (13:47 -0700)
committerTJ VanToll <tj.vantoll@gmail.com>
Mon, 17 Jun 2013 02:37:36 +0000 (22:37 -0400)
tests/unit/menu/menu_methods.js
ui/jquery.ui.menu.js

index c51d123c2d74f723f6ae29f6fa1e8990e7af4077..5d390c0d7c6ceb33d262f6411ba9938d1c1a5ee8 100644 (file)
@@ -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( '<span class="ui-icon ui-icon-disk"></span>Save</a>' );
+       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(),
index 1c641ebb6a07a885b52ff9e937ada451d708635a..5e44e81c47485009598a163839e449c8e3d235ff 100644 (file)
@@ -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" )