I'm trying to create a nav that is optimized for mobile.
<nav id="nav-content" class="nav-main">
<ul>
<li>
<a href="">about</a>
</li>
<li>
<a class="parent-link">production</a>
<ul class="sub-menu">
<li><a href="">workshops</a></li>
<li><a href="">shows</a></li>
<li><a href="">greenlite</a></li>
</ul>
</li>
<li><a href="">watch</a></li>
<li><a id="link-logo" href="index.html"><div id="logo"></div></a></li>
<li>
<a class="parent-link">members</a>
<ul class="sub-menu">
<li><a href="">current</a></li>
<li><a href="">prospective</a></li>
</ul>
</li>
<li>
<a class="parent-link">postings</a>
<ul class="sub-menu">
<li><a href="">jobs</a></li>
<li><a href="">auditions</a></li>
</ul>
</li>
<li>
<a class="parent-link">contact</a>
<ul class="sub-menu">
<li><a href="">team</a></li>
<li><a href="">advertise</a></li>
<li><a href="">suggestions</a></li>
</ul>
</li>
</ul>
</nav>
<nav id="nav-mobile-header"><a href="index.html"><div id="logo-small"></div></a><div id="nav-trigger">
☰
</div></nav>
The nav class changes correctly from from .nav-main to .nav-mobile when the window becomes less than 1000px.
$(document).ready(function()
{
$(function () {
$(window).resize(function () {
if ($(window).width() <= 1000)
{
$('#nav-content').removeClass('nav-main').addClass('nav-mobile');
}
else
{
$('#nav-content').removeClass('nav-mobile').addClass('nav-main');
if ($('#wrap').hasClass('to-left'))
{
$('#wrap').removeClass('to-left');
}
}
}).resize();
});
});
I have a sliding down menu set up on hover when the class of nav is .nav-main. However, this query is still fired when .nav-mobile is the class of the nav. Why does this happen? Why is there still an event listener for the links even though the class is changed?
$(document).ready(function()
{
var slideTime = 300;
$('.nav-main li').hover(function () //why does this still work for .nav-mobile?
{
$('.sub-menu', this).stop().slideDown(slideTime);
$('.parent-link', this).css('color', '#555');
},function ()
{
$('.sub-menu', this).stop().slideUp(slideTime);
$('.parent-link', this).attr('style', '');
});
});
Any help is appreciated, I'm still relatively new to jQuery and SO.