mirror of
https://github.com/jquery/jquery-ui.git
synced 2025-01-07 20:34:24 +00:00
Menu: Properly remove submenu carat icons and menu dividers during destroy and add a test for this functionality
This commit is contained in:
parent
6e7ee98603
commit
2da2ae5070
@ -46,6 +46,9 @@ test("destroy", function() {
|
||||
domEqual("#menu1", function() {
|
||||
$("#menu1").menu().menu("destroy");
|
||||
});
|
||||
domEqual("#menu2", function() {
|
||||
$("#menu2").menu().menu("destroy");
|
||||
});
|
||||
domEqual("#menu5", function() {
|
||||
$("#menu5").menu().menu("destroy");
|
||||
});
|
||||
|
18
ui/jquery.ui.menu.js
vendored
18
ui/jquery.ui.menu.js
vendored
@ -137,7 +137,7 @@ $.widget( "ui.menu", {
|
||||
this.element
|
||||
.removeAttr( "aria-activedescendant" )
|
||||
.find( ".ui-menu" ).andSelf()
|
||||
.removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
|
||||
.removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" )
|
||||
.removeAttr( "role" )
|
||||
.removeAttr( "tabIndex" )
|
||||
.removeAttr( "aria-labelledby" )
|
||||
@ -157,7 +157,16 @@ $.widget( "ui.menu", {
|
||||
.removeClass( "ui-corner-all ui-state-hover" )
|
||||
.removeAttr( "tabIndex" )
|
||||
.removeAttr( "role" )
|
||||
.removeAttr( "aria-haspopup" );
|
||||
.removeAttr( "aria-haspopup" )
|
||||
.children().each( function() {
|
||||
var elem = $( this );
|
||||
if ( elem.data( "ui-menu-submenu-carat" ) ) {
|
||||
elem.remove();
|
||||
}
|
||||
});
|
||||
|
||||
// destroy menu dividers
|
||||
this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
|
||||
|
||||
// unbind currentEventTarget click event handler
|
||||
$( currentEventTarget ).unbind( "click.menu" );
|
||||
@ -309,11 +318,12 @@ $.widget( "ui.menu", {
|
||||
|
||||
submenus.each(function() {
|
||||
var menu = $( this ),
|
||||
item = menu.prev( "a" );
|
||||
item = menu.prev( "a" ),
|
||||
submenuCarat = $( '<span class="ui-menu-icon ui-icon ui-icon-carat-1-e"></span>' ).data( "ui-menu-submenu-carat", true );
|
||||
|
||||
item
|
||||
.attr( "aria-haspopup", "true" )
|
||||
.prepend( '<span class="ui-menu-icon ui-icon ui-icon-carat-1-e"></span>' );
|
||||
.prepend( submenuCarat );
|
||||
menu.attr( "aria-labelledby", item.attr( "id" ) );
|
||||
});
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user