Skip to content

Commit 51d1d33

Browse files
petersendiditarschmitz
authored andcommitted
Menu: use the _classes method.
Fixes #7053
1 parent 43ec02b commit 51d1d33

File tree

3 files changed

+30
-14
lines changed

3 files changed

+30
-14
lines changed

tests/unit/menu/menu_common.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
TestHelpers.commonWidgetTests( "menu", {
22
defaults: {
3+
classes: {
4+
"ui-menu": "ui-corner-all",
5+
"ui-menu-icons": null,
6+
"ui-menu-icon": null,
7+
"ui-menu-item": null,
8+
"ui-menu-divider": null
9+
},
310
disabled: false,
411
icons: {
512
submenu: "ui-icon-caret-1-e"

tests/unit/menu/menu_core.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
module( "menu: core" );
44

55
test( "markup structure", function() {
6-
expect( 6 );
6+
expect( 7 );
77
var element = $( "#menu1" ).menu();
88
ok( element.hasClass( "ui-menu" ), "main element is .ui-menu" );
9+
ok( element.hasClass( "ui-corner-all" ), "main element is .ui-corner-all" );
910
element.children().each(function( index ) {
1011
ok( $( this ).hasClass( "ui-menu-item" ), "child " + index + " is .ui-menu-item" );
1112
});

ui/menu.js

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ return $.widget( "ui.menu", {
3030
defaultElement: "<ul>",
3131
delay: 300,
3232
options: {
33+
classes: {
34+
"ui-menu": "ui-corner-all",
35+
"ui-menu-icons": null,
36+
"ui-menu-icon": null,
37+
"ui-menu-item": null,
38+
"ui-menu-divider": null
39+
},
3340
icons: {
3441
submenu: "ui-icon-caret-1-e"
3542
},
@@ -55,8 +62,8 @@ return $.widget( "ui.menu", {
5562
this.mouseHandled = false;
5663
this.element
5764
.uniqueId()
58-
.addClass( "ui-menu ui-widget ui-widget-content" )
59-
.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
65+
.addClass( this._classes( "ui-menu" ) + " ui-widget ui-widget-content" )
66+
.toggleClass( this._classes( "ui-menu-icons" ), !!this.element.find( ".ui-icon" ).length )
6067
.attr({
6168
role: this.options.role,
6269
tabIndex: 0
@@ -155,7 +162,7 @@ return $.widget( "ui.menu", {
155162
this.element
156163
.removeAttr( "aria-activedescendant" )
157164
.find( ".ui-menu" ).addBack()
158-
.removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" )
165+
.removeClass( this._classes( "ui-menu ui-menu-icons" ) + " ui-widget ui-widget-content ui-front" )
159166
.removeAttr( "role" )
160167
.removeAttr( "tabIndex" )
161168
.removeAttr( "aria-labelledby" )
@@ -167,12 +174,12 @@ return $.widget( "ui.menu", {
167174

168175
// Destroy menu items
169176
this.element.find( ".ui-menu-item" )
170-
.removeClass( "ui-menu-item" )
177+
.removeClass( this._classes( "ui-menu-item" ) )
171178
.removeAttr( "role" )
172179
.removeAttr( "aria-disabled" )
173180
.children( ".ui-menu-item-wrapper" )
174181
.removeUniqueId()
175-
.removeClass( "ui-menu-item-wrapper ui-state-hover" )
182+
.removeClass( this._classes( "ui-menu-item-wrapper" ) + "ui-state-hover" )
176183
.removeAttr( "tabIndex" )
177184
.removeAttr( "role" )
178185
.removeAttr( "aria-haspopup" )
@@ -184,7 +191,8 @@ return $.widget( "ui.menu", {
184191
});
185192

186193
// Destroy menu dividers
187-
this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
194+
this.element.find( ".ui-menu-divider" )
195+
.removeClass( this._classes( "ui-menu-divider" ) + " ui-widget-content" );
188196
},
189197

190198
_keydown: function( event ) {
@@ -287,7 +295,7 @@ return $.widget( "ui.menu", {
287295

288296
// Initialize nested menus
289297
submenus.filter( ":not(.ui-menu)" )
290-
.addClass( "ui-menu ui-widget ui-widget-content ui-front" )
298+
.addClass( this._classes( "ui-menu" ) + " ui-widget ui-widget-content ui-front" )
291299
.hide()
292300
.attr({
293301
role: this.options.role,
@@ -297,9 +305,9 @@ return $.widget( "ui.menu", {
297305
.each(function() {
298306
var menu = $( this ),
299307
item = menu.prev(),
300-
submenuCaret = $( "<span>" )
301-
.addClass( "ui-menu-icon ui-icon " + icon )
302-
.data( "ui-menu-submenu-caret", true );
308+
submenuCarat = $( "<span>" )
309+
.addClass( that._classes( "ui-menu-icon" ) + " ui-icon " + icon )
310+
.data( "ui-menu-submenu-carat", true );
303311

304312
item
305313
.attr( "aria-haspopup", "true" )
@@ -314,16 +322,16 @@ return $.widget( "ui.menu", {
314322
items.not( ".ui-menu-item" ).each(function() {
315323
var item = $( this );
316324
if ( that._isDivider( item ) ) {
317-
item.addClass( "ui-widget-content ui-menu-divider" );
325+
item.addClass( that._classes( "ui-menu-divider" ) + " ui-widget-content" );
318326
}
319327
});
320328

321329
// Don't refresh list items that are already adapted
322330
items.not( ".ui-menu-item, .ui-menu-divider" )
323-
.addClass( "ui-menu-item" )
331+
.addClass( this._classes( "ui-menu-item" ) )
324332
.children()
325333
.not( ".ui-menu" )
326-
.addClass( "ui-menu-item-wrapper" )
334+
.addClass( this._classes( "ui-menu-item-wrapper" ) )
327335
.uniqueId()
328336
.attr({
329337
tabIndex: -1,

0 commit comments

Comments
 (0)