wp/wp-includes/js/admin-bar.js
changeset 7 cf61fcea0001
parent 5 5e2f62d02dcd
child 9 177826044cd9
--- a/wp/wp-includes/js/admin-bar.js	Tue Jun 09 11:14:17 2015 +0000
+++ b/wp/wp-includes/js/admin-bar.js	Mon Oct 14 17:39:30 2019 +0200
@@ -28,6 +28,12 @@
 					e.stopPropagation();
 					e.preventDefault();
 					el.addClass('hover');
+				} else if ( ! $( e.target ).closest( 'div' ).hasClass( 'ab-sub-wrapper' ) ) {
+					// We're dealing with an already-touch-opened menu genericon (we know el.hasClass('hover')),
+					// so close it on a second tap and prevent propag and defaults. See #29906
+					e.stopPropagation();
+					e.preventDefault();
+					el.removeClass('hover');
 				}
 
 				if ( unbind ) {
@@ -123,12 +129,14 @@
 			target.siblings('.ab-sub-wrapper').find('.ab-item').each(refresh);
 		});
 
-		$('#wpadminbar').click( function(e) {
-			if ( e.target.id != 'wpadminbar' && e.target.id != 'wp-admin-bar-top-secondary' )
+		adminbar.click( function(e) {
+			if ( e.target.id != 'wpadminbar' && e.target.id != 'wp-admin-bar-top-secondary' ) {
 				return;
+			}
 
+			adminbar.find( 'li.menupop.hover' ).removeClass( 'hover' );
+			$( 'html, body' ).animate( { scrollTop: 0 }, 'fast' );
 			e.preventDefault();
-			$('html, body').animate({ scrollTop: 0 }, 'fast');
 		});
 
 		// fix focus bug in WebKit