From 2f2de892bdd66eb0ad3cfda9861b16994433f2b9 Mon Sep 17 00:00:00 2001 From: Philip Tzou Date: Thu, 6 Oct 2011 10:37:15 +0000 Subject: [PATCH] Follow r86861. It's strange to apply the focus/blur behaviour only on #p-cactions menu but not all similar menus. The behaviour itself is buggy - a reclick action will toggle off the menu hide but remain the "focus" icon. --- skins/vector/vector.js | 45 +++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/skins/vector/vector.js b/skins/vector/vector.js index 757f7c8c99..b24fe9d20b 100644 --- a/skins/vector/vector.js +++ b/skins/vector/vector.js @@ -2,18 +2,35 @@ * Vector-specific scripts */ jQuery( function( $ ) { - var $pCactions = $( '#p-cactions' ); - $pCactions.find( 'h5 a' ) - // For accessibility, show the menu when the hidden link in the menu is clicked (bug 24298) - .click( function( e ) { - $pCactions.find( '.menu' ).toggleClass( 'menuForceShow' ); - e.preventDefault(); - }) - // When the hidden link has focus, also set a class that will change the arrow icon - .focus( function() { - $pCactions.addClass( 'vectorMenuFocus' ); - }) - .blur( function() { - $pCactions.removeClass( 'vectorMenuFocus' ); - }); + + // For accessibility, show the menu whe + // the hidden link in the menu is focused (bug 24298) + $( 'div.vectorMenu' ).each( function() { + var self = this; + var focused = false; + $( 'h5:first a:first', this ) + .click( function( e ) { + e.preventDefault(); + } ) + // Blur the link if it was focused before the click + .mousedown( function( e ) { + focused = $( this ).is( ':focus' ); + } ) + .mouseup( function( e ) { + if ( focused ) { + $( this ).blur(); + } + e.preventDefault(); + } ) + // When the hidden link has focus, show the menu + // and set a class that will change the arrow icon + .focus( function() { + $( '.menu:first', self ).addClass( 'menuForceShow' ); + $( self ).addClass( 'vectorMenuFocus' ); + } ) + .blur( function() { + $( '.menu:first', self ).removeClass( 'menuForceShow' ); + $( self ).removeClass( 'vectorMenuFocus' ); + } ); + } ); }); -- 2.20.1