当浏览器调整大小时,您永远不会删除旧的事件处理程序,您只是每次添加更多的事件处理程序。当其中一个事件发生时,它将执行所有处理程序。
而不是在
.resize()
处理程序,绑定一次并让他们检查
isMobile
变量来决定是否执行任何操作。
$(function() {
var isMobile = false;
$('nav li').hover(function() {
if (!isMobile) {
$('ul', this).stop().slideToggle(150);
}
}).click(function() {
if (isMobile) {
$('ul', this).stop().slideToggle(150);
}
});
$(window).resize(function() {
isMobile = $(window).width() < 1025;
});
$(window).resize(); // Trigger window resize to check on load
});
@import url(https://fonts.googleapis.com/css?family=Roboto:400,700,500);
/* main Styles */
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
background: #fafafa;
font-family: "Roboto", sans-serif;
font-size: 14px;
margin: 0;
}
a {
text-decoration: none;
}
.container {
width: 1000px;
margin: auto;
}
h1 {
text-align: center;
margin-top: 150px;
}
/* Navigation Styles */
nav {
background: #2ba0db;
}
nav ul {
font-size: 0;
margin: 0;
padding: 0;
display: block;
}
nav ul li {
display: block;
width: 100%;
}
nav ul li a {
color: #fff;
display: block;
font-size: 14px;
padding: 15px 14px;
transition: 0.08s linear;
}
nav ul li:hover {
background: #126d9b;
}
nav ul li ul {
display: none;
border-bottom: 5px solid #2ba0db;
}
nav ul li ul li {
border-top: 1px solid #444;
display: block;
}
nav ul li ul li:first-child {
border-top: none;
}
nav ul li ul li a {
background: #373737;
display: block;
padding: 10px 14px;
}
nav ul li ul li a:hover {
background: #126d9b;
}
nav .fa.fa-angle-down {
margin-left: 6px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<div class="container">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li> <a href="#">Categories<i class='fa fa-angle-down'></i></a>
<ul>
<li><a href="#">Category One</a></li>
<li><a href="#">Category Two</a></li>
<li><a href="#">Category Three</a></li>
</ul>
</li>
<li> <a href="#">Services<i class='fa fa-angle-down'></i></a>
<ul>
<li><a href="#">Service One</a></li>
<li><a href="#">Service Two</a></li>
<li><a href="#">Service Three</a></li>
<li><a href="#">Service Four</a></li>
<li><a href="#">Service Five</a></li>
<li><a href="#">Service Six</a></li>
</ul>
</li>
<li><a href="#">Contact Us</a></li>
</ul>
</div>
</nav>