]> source.dussan.org Git - jquery-ui.git/commitdiff
Menu: Use new uniqueId and removeUniqueId methods for generating id's on menus and...
authorkborchers <kris.borchers@gmail.com>
Wed, 30 May 2012 01:59:03 +0000 (20:59 -0500)
committerkborchers <kris.borchers@gmail.com>
Wed, 30 May 2012 02:13:45 +0000 (21:13 -0500)
ui/jquery.ui.menu.js

index 8d28ee82fd498564a717d9e480b9a44753947349..54a85abf59e0b60160761859a0645927c9ac6689 100644 (file)
@@ -13,8 +13,7 @@
  */
 (function($) {
 
-var idIncrement = 0,
-       currentEventTarget = null;
+var currentEventTarget = null;
 
 $.widget( "ui.menu", {
        version: "@VERSION",
@@ -35,12 +34,11 @@ $.widget( "ui.menu", {
        },
        _create: function() {
                this.activeMenu = this.element;
-               this.menuId = this.element.attr( "id" ) || "ui-menu-" + idIncrement++;
                this.element
+                       .uniqueId()
                        .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
                        .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
                        .attr({
-                               id: this.menuId,
                                role: this.options.role,
                                tabIndex: 0
                        })
@@ -145,18 +143,21 @@ $.widget( "ui.menu", {
                                .removeAttr( "aria-labelledby" )
                                .removeAttr( "aria-expanded" )
                                .removeAttr( "aria-hidden" )
+                               .removeAttr( "aria-disabled" )
+                               .removeUniqueId()
                                .show();
 
                // destroy menu items
                this.element.find( ".ui-menu-item" )
                        .removeClass( "ui-menu-item" )
                        .removeAttr( "role" )
+                       .removeAttr( "aria-disabled" )
                        .children( "a" )
+                               .removeUniqueId()
                                .removeClass( "ui-corner-all ui-state-hover" )
                                .removeAttr( "tabIndex" )
                                .removeAttr( "role" )
                                .removeAttr( "aria-haspopup" )
-                               .removeAttr( "id" )
                                // TODO: is this correct? Don't these exist in the original markup?
                                .children( ".ui-icon" )
                                        .remove();
@@ -273,7 +274,6 @@ $.widget( "ui.menu", {
        refresh: function() {
                // initialize nested menus
                var menus,
-                       menuId = this.menuId,
                        submenus = this.element.find( this.options.menus + ":not(.ui-menu)" )
                                .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
                                .hide()
@@ -290,13 +290,11 @@ $.widget( "ui.menu", {
                        .addClass( "ui-menu-item" )
                        .attr( "role", "presentation" )
                        .children( "a" )
+                               .uniqueId()
                                .addClass( "ui-corner-all" )
                                .attr({
                                        tabIndex: -1,
-                                       role: this._itemRole(),
-                                       id: function( i ) {
-                                               return menuId + "-" + i;
-                                       }
+                                       role: this._itemRole()
                                });
 
                // initialize unlinked menu-items containing spaces and/or dashes only as dividers