From 61ef23dedc94a23b33b47884a66d24687dbeb377 Mon Sep 17 00:00:00 2001 From: Extarys Date: Thu, 21 Jan 2021 17:02:28 -0500 Subject: [PATCH] fix toggle button --- view/theme/frio/js/theme.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/view/theme/frio/js/theme.js b/view/theme/frio/js/theme.js index b21869fee8..fcf99dc5e6 100644 --- a/view/theme/frio/js/theme.js +++ b/view/theme/frio/js/theme.js @@ -373,15 +373,25 @@ $(document).ready(function () { $body.removeClass("aside-out"); }); - $(".offcanvas-right-toggle").on("click", function (event) { + // Right offcanvas elements + let $offcanvas_right_toggle = $(".offcanvas-right-toggle"); + let $offcanvas_right_container = $("#offcanvasUsermenu"); // Use ID for faster lookup, class is .offcanvas-right + + $offcanvas_right_toggle.on("click", function (event) { event.preventDefault(); - // FIXME: Doesn't toggle, menu stays open even when pressing the button again $("body").toggleClass("offcanvas-right-active"); }); + // Close the right offcanvas menu when clicking somewhere $(document).on("mouseup touchend", function (event) { - var offCanvas = $(".offcanvas-right"); - if (!offCanvas.is(event.target) && offCanvas.has(event.target).length === 0) { + if ( + // Clicked element is not inside the menu + !$offcanvas_right_container.is(event.target) && + $offcanvas_right_container.has(event.target).length === 0 && + // Clicked element is not the toggle button (taken care by the toggleClass above) + !$offcanvas_right_toggle.is(event.target) && + $offcanvas_right_toggle.has(event.target).length === 0 + ) { $("body").removeClass("offcanvas-right-active"); } });