From 949b3b864a31959b6a9a189ab9ca26ef5c869a4b Mon Sep 17 00:00:00 2001 From: ken Date: Tue, 22 Sep 2026 21:26:17 +0800 Subject: [PATCH] up --- assets/javascripts/app.js | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/assets/javascripts/app.js b/assets/javascripts/app.js index c3ac759..f76f107 100644 --- a/assets/javascripts/app.js +++ b/assets/javascripts/app.js @@ -3631,5 +3631,45 @@ function fixGoogleMapIframeTitle(){ $(document).ready(function(){ fixGoogleMapIframeTitle(); }); +$(function() { + // 點擊/Enter/Space 按鈕:獨立切換子選單展開狀態,不影響上方連結的跳轉行為 + $(document).on('click', '#main-nav .submenu-toggle', function(e) { + e.stopPropagation(); + var $btn = $(this); + var $li = $btn.closest('li'); + var expanded = $btn.attr('aria-expanded') === 'true'; + + $btn.attr('aria-expanded', String(!expanded)); + $li.toggleClass('submenu-open', !expanded); + // 這裡同步你原本用來顯示/隱藏子選單的 class 或邏輯 + }); + + // 鍵盤焦點移入連結時,維持原本的自動展開行為(方便直接 Tab 進子選單) + $(document).on('focusin', '#main-nav li', function() { + var $li = $(this); + var $btn = $li.children('.submenu-toggle').first(); + if ($btn.length) { + $btn.attr('aria-expanded', 'true'); + $li.addClass('submenu-open'); + } + }); + + $(document).on('focusout', '#main-nav li', function() { + var $li = this; + setTimeout(function() { + if (!$.contains($li, document.activeElement) && document.activeElement !== $li) { + var $btn = $($li).children('.submenu-toggle').first(); + if ($btn.length) { + $btn.attr('aria-expanded', 'false'); + $($li).removeClass('submenu-open'); + } + } + }, 0); + }); +}); + + + + }(jQuery, window));