i have a tree menu that i need to open on specific branch.
1. on click on an A element i open the all next UL.
now i want to close all other UL exept the ones that are parents of the A element.
i want to write a function that will get an argument that is a A ID and will open the menu in the right place.
my jquery code
$(document).ready(function() {
$(".solmenu").click(function() {
$(this).nextAll("ul").slideToggle();
});
my css
ul.solmenu_3140_1 {display:none;}
ul.solmenu_3140_2 {display:none;}
my html
<ul class="solmenu_3140_0">
<li>
<a class="solmenu" href="javascript:void(0);">1</a>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">11</a>
<ul class="solmenu_3140_2">
<li>
<a class="solmenu" href="javascript:void(0);">111</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">112</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">113</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">114</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">115</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">116</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">117</a>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">12</a>
<ul class="solmenu_3140_2">
<li>
<a class="solmenu" href="javascript:void(0);">121</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">122</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">123</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">124</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">125</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">126</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">127</a>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">13</a>
<ul class="solmenu_3140_2">
<li>
<a class="solmenu" href="javascript:void(0);">131</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">132</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">133</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">134</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">135</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">136</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">137</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_0">
<li>
<a class="solmenu" href="javascript:void(0);">2</a>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">21</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">22</a>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_0">
<li>
<a class="solmenu" href="javascript:void(0);">3</a>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">31</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">32</a>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_0">
<li>
<a class="solmenu" href="javascript:void(0);">4</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">5</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">6</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">7</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">8</a>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">81</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">82</a>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_0">
<li>
<a class="solmenu" href="javascript:void(0);">9</a>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">91</a>
<ul class="solmenu_3140_2">
<li>
<a class="solmenu" href="javascript:void(0);">911</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">912</a>
</li>
<li>
<a class="solmenu" href="javascript:void(0);">913</a>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_1">
<li>
<a class="solmenu" href="javascript:void(0);">92</a>
</li>
</ul>
</li>
</ul>
<ul class="solmenu_3140_0">
<li>
<a class="solmenu" href="javascript:void(0);">10</a>
</li>
</ul>
example of my code
sounds like you may want to trigger a click event on a specific node
see http://api.jquery.com/trigger/
Related
I uploaded my website to a new host, Web Host Canada. I downloaded all the files from the previous host, Hostpapa.ca and then uploaded to the new Host but now the dropdown menus are not working.
www.FeaterX.com
However, in VS-Code Live Server everything is working perfectly.
here is the coding I did for the Navbar
<!-- Featerx nav bar-->
<nav class="navbar navbar-expand-lg navbar-dark bg-transparent no-gutters pb-5 sticky-top trn">
<a class="navbar-brand" href="index.html">
<div class="header-title">
<h4 class="text-center text-light">FeaterX International</h4>
<h6 class="text-center text-light">- est. 1994 -</h6>
</div></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse ml-5" id="navbarNavDropdown">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link text-warning" href="http://thekingslandingresort.ca/">
<h5 class="text-center">The King's Landing Luxury RV Resort</h5>
</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-warning" href="#" id="navbarDropdownMenuLinkConsulting" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<h5 class="text-center"> FX<em>i</em>-Consulting</h5>
</a>
<div class="dropdown-menu bg-light" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item text-dark" href="FXi_Consulting.html">
<h4 class="text-left">FX<em>i</em>-Consulting</h4>
</a>
<a class="dropdown-item text-dark" href="FXi_JobSite_Solutions.html">
<h4 class="text-left">FX<em>i</em>-JobSite Solutions</h4>
</a>
<a class="dropdown-item text-dark" href="FXi_Learning.html">
<h4 class="text-left">FX<em>i</em>-Learning</h4>
</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-warning" href="#" id="navbarDropdownMenuLink2" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<h5 class="text-center"> Great Reads</h5>
</a>
<div class="dropdown-menu bg-light" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item text-dark" href="FeaterX_Articles_Books_Blogs_etc.html">
<h4 class="text-left">Articles</h4>
</a>
<a class="dropdown-item text-dark" href="FeaterX_Books.html">
<h4 class="text-left">Books</h4>
</a>
<!-- <a class="dropdown-item text-dark" href="FeaterX_Articles_Books_Blogs_etc.html">
<h4 class="text-left">Social Media</h4>
</a> -->
</div>
</li>
</ul>
</div>
<div class="row no-gutters navbutton d-none d-lg-inline">
<div class="col nav-item">
<a class="nav-link" href="Contact.html"> <button type="button" class="btn btn-danger btn-sm">
Contact
</button>
</a>
<a class="LinkedIn" href="https://www.linkedin.com/in/roy-cooper-5b9b3988/">
<img src="images/LI-China-Logo.png" alt="Linked In logo with both english and cantonese characters" class="img-fluid">
</a>
</div>
</div>
</nav>
any thoughts on how to fix this?
Your scripts are not loading. They are missing. Recheck their path:
After your first comment I tested again, and now the protocol HTTP/3 has changed to HTTP/2 but still missing the files. Maybe a permissions problem?
This is the new browser console result:
TYPO3 9.5.3 Fluid Bootstrap Package
How to make a mega menu in TypoScript with the placeholder I provide for example toplevel1 is the first then a dropdown toplevel2 and then a dropdown top-level 3? If you need the css I will upload it also and the JavaScript.
Thank you for you help. OR should I build the menu only with TypoScript?
Thank you
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="content-language" content="de-DE">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>HTL Villach</title>
<link rel="icon" type="image/png" href="images/logo_schwarz.png">
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" />
</head>
<body>
<!-- NAVBAR -->
<header>
<nav class="navbar navbar-expand-lg navbar-dark">
<a class="logo-link" href="index.html">
<img class="logo" width="190%" src="fileadmin/images/bannerlogo04.png">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" >
<img class="hamburger" src="images/menu.svg">
</button>
<!-- DESKTOP-DESIGN-AUSBILDUNG -->
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto">
<li class="nav-item dropdown">
<a class="desktop nav-link dropdown-toggle drop" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{menuPrimary f:format.raw()}<i class="fas fa-caret-down faicon"></i>
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="container">
<div class="row"><div class="desktop col-lg-3">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link-header" href="#">{toplevel2 f:format.raw()}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">{toplevel3 f:format.raw()}</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</li>
<!-- MOBILE-DESIGN AUSBILDUNG -->
<li class="mobile nav-item dropdown">
<a class="nav-link md dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{toplevel1 f:format.raw()} <i class="fas fa-caret-down faicon"></i>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<li class="dropdown-submenu"><a class="dropdown-item dropdown-toggle col-lg-3" href="#">{toplevel2 f:format.raw()} <i class="fas fa-caret-down faicon"></i></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item-sub" href="#">{toplevel3 f:format.raw()}</a></li>
</ul>
</ul>
</li>
<!-- DESKTOP-DESIGN-SCHULE -->
<li class="nav-item dropdown">
<a class="desktop nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{toplevel1 f:format.raw()} <i class="fas fa-caret-down faicon"></i>
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="container">
<div class="row">
<div class="desktop col-lg-4">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link-header" href="#">{toplevel2 f:format.raw()}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">{toplevel3 f:format.raw()}</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</li>
<!-- MOBILE-DESIGN SCHULE -->
<li class="mobile nav-item dropdown">
<a class="nav-link md dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{toplevel1 f:format.raw()} <i class="fas fa-caret-down faicon"></i>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<li class="dropdown-submenu"><a class="dropdown-item dropdown-toggle col-lg-3" href="#">{toplevel2 f:format.raw()} <i class="fas fa-caret-down faicon"></i></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item-sub" href="#">{toplevel3 f:format.raw()}</a></li>
</ul>
</li>
</ul>
</li>
<!-- DESKTOP-DESIGN-LEHRER -->
<li class="nav-item dropdown">
<a class="desktop nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{toplevel1 f:format.raw()} <i class="fas fa-caret-down faicon"></i>
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="container">
<div class="row">
<div class="desktop col-lg-5">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link-header" href="#">{toplevel2 f:format.raw()}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">{toplevel3 f:format.raw()}</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</li>
<!-- MOBILE-DESIGN LEHRER -->
<li class="mobile nav-item dropdown">
<a class="nav-link md dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{toplevel1 f:format.raw()} <i class="fas fa-caret-down faicon"></i>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<li class="dropdown-submenu"><a class="dropdown-item dropdown-toggle col-lg-3" href="#">{toplevel2 f:format.raw()} <i class="fas fa-caret-down faicon"></i></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item-sub" href="#">{toplevel3 f:format.raw()}</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- SUCHE -->
<form class="form-inline my-2 my-lg-0">
<input class="form-control" type="search" placeholder="Suche" aria-label="Search">
<a id="search" href="index.html"><i class="fas fa-search"></i></a>
</form>
</div>
</nav>
</header>
<!-- FOOTER -->
<div class="footer">
<span class="copyright">©</span>
<span class="mr-2">Höhere technische Bundeslehr- und Versuchsanstalt Villach, Tschinowitscher Weg 5, 9500 Villach</span>
<span class="vertical-line">|</span>
<span>Tel: +43 4242 37061-0</span>
<span class="vertical-line">|</span>
Kontakt
<span class="vertical-line">|</span>
Impressum
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="js/nav.js"></script>
</body>
</html>
#Björn: Especially for megamenus, use of TS will offer you many possibilities of individual, partial caching. So it's a choice between performance and maintainability.
My navbar on the phone opens, but it does not close.
<div class="carousel-inner">
<nav class="navbar navbar-expand-lg navbar-light bg-primary nawigacja">
<div class="container">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar10">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbar10">
<ul class="navbar-nav nav-fill w-100">
<li class="nav-item">
<a class="nav-link" href="#">First tab</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="#button1">2nd Tab</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="#button2">3rd Tab</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="#button3">4th tab</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="#button4">5th Tab</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">6th Tab</a>
</li>
</ul>
</div>
</div>
in the elements I see that before clicking the code looks like this:
<div class="navbar-collapse collapse" id="navbar10">
and literally for a few seconds the code changes into:
navbar-collapse collapsing
next in 1 sec:
navbar-collapse collapse show
after another click it changes to
navbar-collapse collapsing
and after 1 sec again:
navbar-collapse collapse show
Navbar does not close at all after opening.
//edit:
I will add that on codeply it works.
I managed to fix it.
For others who are struggling with the same problem, I will tell you that I had to remove the following from the section:
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
In bootstrap-4, the first time I click a dropdown in a tab menu it works fine, but after that it stops working.
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" href="#home" role="tab" data-toggle="tab">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#profile" role="tab" data-toggle="tab">Profile</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#action" data-toggle="tab">action</a>
<a class="dropdown-item" href="#action_2" data-toggle="tab">Another action</a>
</div>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">
HOME
</div>
<div role="tabpanel" class="tab-pane" id="profile">
PROFILE
</div>
<div role="tabpanel" class="tab-pane" id="action">
ACTION 1
</div>
<div role="tabpanel" class="tab-pane" id="action_2">
ACTION 2
</div>
</div>
Here's a Demo in Bootply
The issue appears to be caused by not clearing the .active class from the dropdown item when another tab is opened, therefore leaving it highlighted and preventing the same dropdown item from being clicked again.
According to the workaround in Issue #17371 - navs dropdown tab bug, you can add the following js until the issue is resolved:
$('.nav-tabs').on('shown.bs.tab', 'a', function (e) {
if (e.relatedTarget) {
$(e.relatedTarget).removeClass('active');
}
})
Demo in Stack Snippets
$('.nav-tabs').on('shown.bs.tab', 'a', function (e) {
if (e.relatedTarget) {
$(e.relatedTarget).removeClass('active');
}
})
<!-- 4.0.0-alpha.2 Libraries -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" >
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/js/bootstrap.min.js"></script>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" href="#home" role="tab" data-toggle="tab">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#profile" role="tab" data-toggle="tab">Profile</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#action" data-toggle="tab">action</a>
<a class="dropdown-item" href="#action_2" data-toggle="tab">Another action</a>
</div>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">
HOME
</div>
<div role="tabpanel" class="tab-pane" id="profile">
PROFILE
</div>
<div role="tabpanel" class="tab-pane" id="action">
ACTION 1
</div>
<div role="tabpanel" class="tab-pane" id="action_2">
ACTION 2
</div>
</div>
I am trying jsTree for the first time, and have the problem that after calling jstree(), the text in my <li> elements vanishes. After the call, my tree looks like this:
<div id="assessment-treeview" class="jstree jstree-0 jstree-focused jstree-classic">
<ul>
<li class="jstree-last jstree-open"><ins class="jstree-icon"> </ins>
<ul style="">
<li class="jstree-last jstree-open"><ins class="jstree-icon"> </ins>
<ul style="">
<li class="jstree-last jstree-leaf"><ins class="jstree-icon"> </ins></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Before the call it looks like this:
<div id="assessment-treeview">
<ul>
<li>Specific Outcomes
<ul>
<li>[section: name not available for import]
<ul>
<li>[outcome: name not available for import] </li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
The jstree call looks like this:
$("#assessment-treeview").jstree({ "themes": { "theme": "classic" } });
What could be causing this?
jsTree doesn't like pure text nodes inside the 'li' tag. When I put the item text into a tag like 'span', everything worked fine again.
From the question code above:
<li><span>Specific Outcomes</span>
<ul>
.
.
</ul>
</li>