Update from Git Manager GUI
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
( function() {
|
||||
// FIX: Null-Check – Script bricht auf Login-Seite & Seiten ohne Nav nicht mehr ab
|
||||
const siteNavigation = document.getElementById( 'site-navigation' );
|
||||
const menuToggle = siteNavigation.querySelector( '.menu-toggle' );
|
||||
if ( ! siteNavigation ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Early exit wenn kein Toggle da ist
|
||||
const menuToggle = siteNavigation.querySelector( '.menu-toggle' );
|
||||
if ( ! menuToggle ) {
|
||||
return;
|
||||
}
|
||||
@@ -10,8 +13,7 @@
|
||||
// Toggle Klassen hinzufügen (Menü öffnen/schließen)
|
||||
menuToggle.addEventListener( 'click', function() {
|
||||
siteNavigation.classList.toggle( 'toggled' );
|
||||
|
||||
// Aria States aktualisieren
|
||||
|
||||
if ( menuToggle.getAttribute( 'aria-expanded' ) === 'true' ) {
|
||||
menuToggle.setAttribute( 'aria-expanded', 'false' );
|
||||
menuToggle.innerHTML = '<i class="fas fa-bars"></i>';
|
||||
@@ -21,18 +23,37 @@
|
||||
}
|
||||
} );
|
||||
|
||||
// Mobile Submenu Toggle (Klick auf Parent-Item öffnet Untermenü)
|
||||
// FIX: Menü bei Klick außerhalb schließen
|
||||
document.addEventListener( 'click', function( e ) {
|
||||
if ( siteNavigation.classList.contains( 'toggled' ) && ! siteNavigation.contains( e.target ) ) {
|
||||
siteNavigation.classList.remove( 'toggled' );
|
||||
menuToggle.setAttribute( 'aria-expanded', 'false' );
|
||||
menuToggle.innerHTML = '<i class="fas fa-bars"></i>';
|
||||
}
|
||||
} );
|
||||
|
||||
// Mobile Submenu Toggle
|
||||
const subMenuParents = siteNavigation.querySelectorAll( '.menu-item-has-children' );
|
||||
|
||||
subMenuParents.forEach( function( subMenuParent ) {
|
||||
subMenuParent.addEventListener( 'click', function( e ) {
|
||||
// Nur auf Mobil aktivieren (Media Query Check)
|
||||
if ( window.innerWidth <= 992 ) {
|
||||
// Optional: Verhindern, dass der Link geklickt wird, wenn man nur das Menü öffnen will
|
||||
// e.preventDefault();
|
||||
// FIX: Eigenen Toggle-Button erzeugen statt gesamtes <li> klickbar zu machen
|
||||
const toggleBtn = document.createElement( 'button' );
|
||||
toggleBtn.classList.add( 'submenu-toggle' );
|
||||
toggleBtn.setAttribute( 'aria-expanded', 'false' );
|
||||
toggleBtn.innerHTML = '<i class="fas fa-chevron-down"></i>';
|
||||
|
||||
// Klasse 'active' umschalten für das CSS Display
|
||||
this.classList.toggle( 'active' );
|
||||
const parentLink = subMenuParent.querySelector( 'a' );
|
||||
if ( parentLink ) {
|
||||
parentLink.insertAdjacentElement( 'afterend', toggleBtn );
|
||||
}
|
||||
|
||||
toggleBtn.addEventListener( 'click', function( e ) {
|
||||
e.stopPropagation();
|
||||
if ( window.innerWidth <= 992 ) {
|
||||
const isOpen = subMenuParent.classList.toggle( 'active' );
|
||||
toggleBtn.setAttribute( 'aria-expanded', isOpen ? 'true' : 'false' );
|
||||
// Icon drehen
|
||||
toggleBtn.querySelector('i').style.transform = isOpen ? 'rotate(180deg)' : 'rotate(0deg)';
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
Reference in New Issue
Block a user