fix: fixed submenu fold out

This commit is contained in:
Andreas Gammelgaard Damsbo 2025-08-27 11:11:00 +02:00
parent 731a09e390
commit ca29847450
No known key found for this signature in database
2 changed files with 82 additions and 26 deletions

View file

@ -6,6 +6,7 @@ $(document).on('shown.bs.tab', '#main_panel', function(e) {
$('#main_panel .dropdown-toggle').removeClass('show').attr('aria-expanded', 'false');
});
$(document).on('shiny:sessioninitialized', function() {
// Function to collapse navbar on mobile
function collapseNavbar() {
@ -17,13 +18,40 @@ function collapseNavbar() {
}
}
// Add click event to navigation tabs
$(document).on('click', '.nav-link[data-bs-toggle=\"tab\"]', function() {
// Main approach: Handle clicks on nav elements
$(document).on('click', '.navbar-nav .nav-link, .dropdown-item', function(event) {
var $target = $(event.currentTarget);
// Don't collapse if this is a dropdown toggle
if ($target.hasClass('dropdown-toggle')) {
return;
}
// Don't collapse if this is inside a dropdown and the dropdown should stay open
if ($target.hasClass('nav-link') && $target.closest('.dropdown').length &&
!$target.attr('data-bs-toggle')) {
return;
}
// Collapse the navbar after a short delay
setTimeout(collapseNavbar, 10);
});
// Also handle direct clicks on nav items
$(document).on('click', '.navbar-nav .nav-link', function() {
// Handle tab toggles specifically
$(document).on('click', '.nav-link[data-bs-toggle="tab"]', function() {
if (!$(this).hasClass('dropdown-toggle')) {
setTimeout(collapseNavbar, 10);
}
});
// Optional: Handle clicks outside the navbar to close it
$(document).on('click', function(event) {
var navbar = $('.navbar-collapse');
// Check if click is outside navbar and navbar is open
if (navbar.hasClass('show') &&
!$(event.target).closest('.navbar').length) {
collapseNavbar();
}
});
});

View file

@ -6,6 +6,7 @@ $(document).on('shown.bs.tab', '#main_panel', function(e) {
$('#main_panel .dropdown-toggle').removeClass('show').attr('aria-expanded', 'false');
});
$(document).on('shiny:sessioninitialized', function() {
// Function to collapse navbar on mobile
function collapseNavbar() {
@ -17,13 +18,40 @@ function collapseNavbar() {
}
}
// Add click event to navigation tabs
$(document).on('click', '.nav-link[data-bs-toggle=\"tab\"]', function() {
// Main approach: Handle clicks on nav elements
$(document).on('click', '.navbar-nav .nav-link, .dropdown-item', function(event) {
var $target = $(event.currentTarget);
// Don't collapse if this is a dropdown toggle
if ($target.hasClass('dropdown-toggle')) {
return;
}
// Don't collapse if this is inside a dropdown and the dropdown should stay open
if ($target.hasClass('nav-link') && $target.closest('.dropdown').length &&
!$target.attr('data-bs-toggle')) {
return;
}
// Collapse the navbar after a short delay
setTimeout(collapseNavbar, 10);
});
// Also handle direct clicks on nav items
$(document).on('click', '.navbar-nav .nav-link', function() {
// Handle tab toggles specifically
$(document).on('click', '.nav-link[data-bs-toggle="tab"]', function() {
if (!$(this).hasClass('dropdown-toggle')) {
setTimeout(collapseNavbar, 10);
}
});
// Optional: Handle clicks outside the navbar to close it
$(document).on('click', function(event) {
var navbar = $('.navbar-collapse');
// Check if click is outside navbar and navbar is open
if (navbar.hasClass('show') &&
!$(event.target).closest('.navbar').length) {
collapseNavbar();
}
});
});