From: kborchers Date: Mon, 16 Apr 2012 12:02:28 +0000 (-0500) Subject: Menu: Add aria-disabled attribute to disabled items, namespace and cleanup the curren... X-Git-Tag: 1.9.0m8~142 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9a6392033a0ee2b79999777a5e279e6aa3cfb12a;p=jquery-ui.git Menu: Add aria-disabled attribute to disabled items, namespace and cleanup the currentEventTarget click event --- diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index 5e6b335ba..ec7a69754 100644 --- a/ui/jquery.ui.menu.js +++ b/ui/jquery.ui.menu.js @@ -14,7 +14,7 @@ (function($) { var idIncrement = 0, - currentEventTarget; + currentEventTarget = null; $.widget( "ui.menu", { version: "@VERSION", @@ -54,7 +54,9 @@ $.widget( "ui.menu", { }, this )); if ( this.options.disabled ) { - this.element.addClass( "ui-state-disabled" ); + this.element + .addClass( "ui-state-disabled" ) + .attr( "aria-disabled", "true" ); } this._bind({ @@ -70,8 +72,8 @@ $.widget( "ui.menu", { var target = $( event.target ); if ( target[0] != currentEventTarget ) { currentEventTarget = target[0]; - target.one( "click", function( event ) { - currentEventTarget = ""; + target.one( "click.menu", function( event ) { + currentEventTarget = null; }); // Don't select disabled menu items if ( !target.closest( ".ui-menu-item" ).is( ".ui-state-disabled" ) ) { @@ -158,6 +160,9 @@ $.widget( "ui.menu", { .removeAttr( "id" ) .children( ".ui-icon" ) .remove(); + + // unbind currentEventTarget click event handler + $( currentEventTarget ).unbind( "click.menu" ); }, _keydown: function( event ) { @@ -282,6 +287,9 @@ $.widget( "ui.menu", { // initialize unlinked menu-items as dividers menus.children( ":not(.ui-menu-item)" ).addClass( "ui-widget-content ui-menu-divider" ); + // add aria-disabled attribut to any disabled menu item + menus.children( ".ui-state-disabled" ).attr( "aria-disabled", "true" ); + submenus.each(function() { var menu = $( this ), item = menu.prev( "a" );