mirror of
https://github.com/agdamsbo/FreesearchR.git
synced 2025-09-12 01:49:39 +02:00
fix: fixed submenu fold out
This commit is contained in:
parent
731a09e390
commit
ca29847450
2 changed files with 82 additions and 26 deletions
|
@ -6,9 +6,10 @@ $(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() {
|
||||
// Function to collapse navbar on mobile
|
||||
function collapseNavbar() {
|
||||
var navbar = $('.navbar-collapse');
|
||||
if (navbar.hasClass('show')) {
|
||||
navbar.removeClass('show');
|
||||
|
@ -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();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -6,9 +6,10 @@ $(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() {
|
||||
// Function to collapse navbar on mobile
|
||||
function collapseNavbar() {
|
||||
var navbar = $('.navbar-collapse');
|
||||
if (navbar.hasClass('show')) {
|
||||
navbar.removeClass('show');
|
||||
|
@ -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();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue