Follow r86861. It's strange to apply the focus/blur behaviour only on #p-cactions...
[lhc/web/wiklou.git] / skins / vector / vector.js
index 757f7c8..b24fe9d 100644 (file)
@@ -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' );
+                       } );
+       } );
 });