forked from mirror/_s
Merge pull request #900 from iamtakashi/fix-menu-for-touch
Toggle focus class to allow submenu access on tablets. Props @iamtakashi
This commit is contained in:
commit
ad8a7c0ac7
|
@ -78,4 +78,35 @@
|
||||||
self = self.parentElement;
|
self = self.parentElement;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggles `focus` class to allow submenu access on tablets.
|
||||||
|
*/
|
||||||
|
( function ( container ) {
|
||||||
|
var touchStartFn,
|
||||||
|
parentLink = container.querySelectorAll( '.menu-item-has-children > a, .page_item_has_children > a' );
|
||||||
|
|
||||||
|
if ( 'ontouchstart' in window ) {
|
||||||
|
touchStartFn = function( e ) {
|
||||||
|
var menuItem = this.parentNode;
|
||||||
|
|
||||||
|
if ( ! menuItem.classList.contains( 'focus' ) ) {
|
||||||
|
e.preventDefault();
|
||||||
|
for( var i = 0; i < menuItem.parentNode.children.length; ++i ) {
|
||||||
|
if ( menuItem === menuItem.parentNode.children[i] ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
menuItem.parentNode.children[i].classList.remove( 'focus' );
|
||||||
|
}
|
||||||
|
menuItem.classList.add( 'focus' );
|
||||||
|
} else {
|
||||||
|
menuItem.classList.remove( 'focus' );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
for ( var i = 0; i < parentLink.length; ++i ) {
|
||||||
|
parentLink[i].addEventListener( 'touchstart', touchStartFn, false );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ( container ) );
|
||||||
} )();
|
} )();
|
||||||
|
|
Reference in New Issue