Issue with Dynamic Menu Highlighting in HubSpot
I’m building a custom navigation module in HubSpot and running into problems with the active state functionality. I need the clicked menu item to stay highlighted, but my jQuery script isn’t working properly.
The main problem is that when someone clicks a menu link, the page reloads and my active class gets reset. I’m working with HUBL templates mixed with regular HTML, so I’m not completely sure if my approach is correct.
Here’s my current implementation:
JavaScript:
$('.nav-menu a').on('click', function() {
var selectedLink = $(this);
selectedLink.parents('.nav-menu').find('li').removeClass('current');
selectedLink.parentsUntil('.main-navigation', 'li').addClass('current');
})
CSS:
.nav-menu-item {
width: fit-content;
float: left;
padding: 15px 20px;
}
a#nav-menu-links {
text-decoration: none;
color: #7a8a9a;
}
.current {
background: #ffffff;
}
.main-navigation li {
list-style: none;
display: inline;
}
HTML:
<div class="main-navigation" id="navigation">
<ul class="nav-menu" id="main-nav">
<li class="nav-menu-item current">
<a id="nav-menu-links" href="/articles/">
<h5>Latest Posts</h5>
</a>
</li>
<li class="nav-menu-item">
<a id="nav-menu-links" href="/articles/category/news/">
<h5>News</h5>
</a>
</li>
<li class="nav-menu-item">
<a id="nav-menu-links" href="/articles/category/reviews/">
<h5>Reviews</h5>
</a>
</li>
<li class="nav-menu-item">
<a id="nav-menu-links" href="/articles/category/tutorials/">
<h5>Tutorials</h5>
</a>
</li>
</ul>
</div>
Any suggestions on how to make this work correctly in HubSpot?