1 2function transferClickedText(sourceEl, targetLayer) { 3 if (window.innerWidth <= 1024) { 4 const backOrClose = targetLayer.querySelector(".link-back, .link-close"); 5 if (backOrClose) { 6 backOrClose.textContent = sourceEl.textContent.trim(); 7 } 8 } 9} 10 11 12function megamenu() { 13 const navMega = document.querySelector("#navMega"); 14 if (!navMega) return; 15 16 const menuItems = document.querySelectorAll("#navMain .level_1 strong.submenu"); 17 const megaMenus = navMega.querySelectorAll(".navLayer"); 18 19 const menuItemsSubs = document.querySelectorAll("#navMega .level_3 strong.submenu"); 20 const megaMenuSubs = navMega.querySelectorAll("#navMega .level_4"); 21 22 const navToggle = document.querySelector("#navToggle"); 23 const navMain = document.querySelector("#navMain"); 24 25 const langSwitchTrigger = document.querySelector(".translation-language-switcher-trigger"); 26 const langSwitchMenu = document.querySelector(".translation-language-switcher-megamenu"); 27 28 const navLayers = document.getElementById("navMega"); 29 if (navLayers && !navLayers.contains(langSwitchMenu)) { 30 navLayers.appendChild(langSwitchMenu); 31 } 32 33 // Initiate close button separately because why not 34 const closeButton = langSwitchMenu.querySelector(".link-close"); 35 if (closeButton) { 36 closeButton.addEventListener("click", () => { 37 langSwitchTrigger.classList.remove("showSub"); 38 langSwitchMenu.classList.remove("show"); 39 }); 40 } 41 42 // clicky clicky 43 langSwitchTrigger.addEventListener("click", () => { 44 langSwitchTrigger.classList.toggle("showSub"); 45 langSwitchMenu.classList.toggle("show"); 46 47 // Alle anderen schlieÃen 48 menuItems.forEach(i => i.classList.remove("showSub")); 49 megaMenus.forEach(menu => menu.classList.remove("show")); 50 menuItemsSubs.forEach(i => i.classList.remove("showSub")); 51 megaMenuSubs.forEach(menuSub => menuSub.classList.remove("show")); 52 }); 53 54 navToggle.addEventListener("click", () => { 55 navToggle.classList.toggle("open"); 56 navMain.classList.toggle("show"); 57 }); 58 59 //Level 1 -> Megamenü ausklappen 60 menuItems.forEach(item => { 61 item.addEventListener("click", () => { 62 const rel = item.getAttribute("rel"); 63 64 // Alle zurücksetzen 65 menuItems.forEach(i => i.classList.remove("showSub")); 66 megaMenus.forEach(menu => menu.classList.remove("show")); 67 68 langSwitchTrigger.classList.remove("showSub"); 69 langSwitchMenu.classList.remove("show"); 70 71 // Aktives setzen 72 item.classList.add("showSub"); 73 const targetMenu = Array.from(megaMenus).find( 74 menu => menu.getAttribute("rel") === rel 75 ); 76 if (targetMenu) { 77 targetMenu.classList.add("show"); 78 transferClickedText(item, targetMenu); 79 } 80 }); 81 }); 82 83 //SchlieÃen 84 const closeButtons = document.querySelectorAll("#navMega .link-close"); 85 86 closeButtons.forEach(close => { 87 close.addEventListener("click", () => { 88 const navLayer = close.closest(".navLayer"); 89 if (navLayer) { 90 navLayer.classList.remove("show"); 91 megaMenuSubs.forEach(menuSub => menuSub.classList.remove("show")); 92 menuItems.forEach(i => i.classList.remove("showSub")); 93 } 94 }); 95 }); 96 97 //Megamenü -> Level 4 ausklappen 98 menuItemsSubs.forEach(itemSub => { 99 // console.log('hello there?'); 100 itemSub.addEventListener("click", () => { 101 // console.log('klicked');
102 const rel = itemSub.getAttribute("rel"); 103 104 // Alle zurücksetzen 105 megaMenuSubs.forEach(menuSub => menuSub.classList.remove("show")); 106 107 // Aktives setzen 108 const targetMenuSub = Array.from(megaMenuSubs).find( 109 menuSub => menuSub.getAttribute("rel") === rel 110 ); 111 if (targetMenuSub) { 112 targetMenuSub.classList.add("show"); 113 transferClickedText(itemSub, targetMenuSub); 114 } 115 }); 116 }); 117 118 //Zurück 119 const backButtons = document.querySelectorAll("#navMega .link-back"); 120 121 backButtons.forEach(back => { 122 back.addEventListener("click", () => { 123 const navLayerSub = back.closest(".level_4"); 124 if (navLayerSub) { 125 navLayerSub.classList.remove("show"); 126 } 127 }); 128 }); 129} 130 131 132document.addEventListener("DOMContentLoaded", function () { 133 megamenu(); 134}); 135 136
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.