2026-08-13 21:24:16 +08:00
|
|
|
(function () {
|
|
|
|
|
"use strict";
|
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
|
|
|
var toggle = document.getElementById("navToggle");
|
|
|
|
|
var nav = document.getElementById("mainNav");
|
2026-09-29 10:52:30 +08:00
|
|
|
if (toggle && nav) {
|
|
|
|
|
toggle.addEventListener("click", function () {
|
|
|
|
|
nav.classList.toggle("open");
|
|
|
|
|
});
|
|
|
|
|
document.addEventListener("click", function (e) {
|
|
|
|
|
if (!nav.contains(e.target) && !toggle.contains(e.target)) {
|
|
|
|
|
nav.classList.remove("open");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var items = document.querySelectorAll(".nav-item.has-dropdown");
|
|
|
|
|
items.forEach(function (item) {
|
|
|
|
|
var caret = item.querySelector(".nav-caret");
|
|
|
|
|
if (!caret) return;
|
|
|
|
|
caret.addEventListener("click", function (e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
e.stopPropagation();
|
|
|
|
|
var wasOpen = item.classList.contains("open");
|
|
|
|
|
items.forEach(function (x) { x.classList.remove("open"); });
|
|
|
|
|
if (!wasOpen) item.classList.add("open");
|
|
|
|
|
});
|
2026-08-13 21:24:16 +08:00
|
|
|
});
|
2026-09-29 10:52:30 +08:00
|
|
|
|
2026-08-13 21:24:16 +08:00
|
|
|
document.addEventListener("click", function (e) {
|
2026-09-29 10:52:30 +08:00
|
|
|
if (e.target.closest(".nav-item")) return;
|
|
|
|
|
items.forEach(function (x) { x.classList.remove("open"); });
|
2026-08-13 21:24:16 +08:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
})();
|