From 7e5f87af0fd1b7fd33b8069d2663ca77475236ae Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Tue, 10 Apr 2018 19:17:10 +0200 Subject: [PATCH] Hide other submenus when opening a new one --- .../javascripts/bootstrap-dropdown-submenu.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/bootstrap-dropdown-submenu.js b/app/assets/javascripts/bootstrap-dropdown-submenu.js index f34274df..40850c29 100644 --- a/app/assets/javascripts/bootstrap-dropdown-submenu.js +++ b/app/assets/javascripts/bootstrap-dropdown-submenu.js @@ -1,22 +1,27 @@ $(document).ready(function () { + var subMenusSelector = 'ul.dropdown-menu [data-toggle=dropdown]'; + function openSubMenu(event) { if (this.pathname === '/') { event.preventDefault(); } event.stopPropagation(); + + $(subMenusSelector).parent().removeClass('open'); $(this).parent().addClass('open'); var menu = $(this).parent().find("ul"); var menupos = menu.offset(); + var newPos; if ((menupos.left + menu.width()) + 30 > $(window).width()) { - var newpos = -menu.width(); + newPos = -menu.width(); } else { - var newpos = $(this).parent().width(); + newPos = $(this).parent().width(); } - menu.css({left: newpos}); + menu.css({left: newPos}); } - $('ul.dropdown-menu [data-toggle=dropdown]').on('click', openSubMenu).on('mouseenter', openSubMenu); + $(subMenusSelector).on('click', openSubMenu).on('mouseenter', openSubMenu); });