summaryrefslogtreecommitdiffstatshomepage
path: root/src/js/_enqueues/admin/common.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/_enqueues/admin/common.js')
-rw-r--r--src/js/_enqueues/admin/common.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/js/_enqueues/admin/common.js b/src/js/_enqueues/admin/common.js
index 41a53eb9a2..6da70c7147 100644
--- a/src/js/_enqueues/admin/common.js
+++ b/src/js/_enqueues/admin/common.js
@@ -1702,6 +1702,25 @@ $( function() {
}
} );
+ // Close sidebar when focus moves outside of toggle and sidebar.
+ $( '#wp-admin-bar-menu-toggle, #adminmenumain' ).on( 'focusout', function( e ) {
+ var focusIsInToggle, focusIsInSidebar;
+
+ if ( ! $wpwrap.hasClass( 'wp-responsive-open' ) || ! document.hasFocus() ) {
+ return;
+ }
+ // A brief delay is required to allow focus to switch to another element.
+ setTimeout( function() {
+ focusIsInToggle = $.contains( $( '#wp-admin-bar-menu-toggle' )[0], $( ':focus' )[0] );
+ focusIsInSidebar = $.contains( $( '#adminmenumain' )[0], $( ':focus' )[0] );
+
+ if ( ! focusIsInToggle && ! focusIsInSidebar ) {
+ $( '#wp-admin-bar-menu-toggle' ).trigger( 'click.wp-responsive' );
+ }
+ }, 10 );
+ } );
+
+
// Add menu events.
$adminmenu.on( 'click.wp-responsive', 'li.wp-has-submenu > a', function( event ) {
if ( ! $adminmenu.data('wp-responsive') ) {
@@ -1709,6 +1728,7 @@ $( function() {
}
$( this ).parent( 'li' ).toggleClass( 'selected' );
+ $( this ).trigger( 'focus' );
event.preventDefault();
});