我有以下HTML与jQuery相关:
<nav class="navigation">
<ul>
<li class="has-sub">iPad <i class="fa fa-angle-down"></i>
<ul class="sub-menu">
<li><a href="iPadAir2.php">iPad Air 2 Review</a></li>
<li><a href="iPadAir.php">iPad Air Review</a></li>
<li><a href="iPadMini2.php">iPad mini 2 Review</a></li>
</ul>
</li>
<li class="has-sub">iPhone <i class="fa fa-angle-down"></i>
<ul class="sub-menu">
<li><a href="iPhone6.php">iPhone 6 Review</a></li>
<li><a href="iPhone5s.php">iPhone 5s Review</a></li>
<li><a href="iPhone5c.php">iPhone 5c Review</a></li>
<li><a href="iPhone5.php">iPhone 5 Review</a></li>
<li><a href="iPhone4s.php">iPhone 4s Review</a></li>
</ul>
</li>
<li class="has-sub">Mac <i class="fa fa-angle-down"></i>
<ul class="sub-menu">
<li><a href="MacBook.php">MacBook Review</a></li>
<li><a href="MacBookProRetina.php">MacBook Pro w/ Retina display Review</a></li>
<li><a href="MacBookPro.php">MacBook Pro Review</a></li>
<li><a href="MacBookAir.php">MacBook Air Review</a></li>
</ul>
</li>
</ul>
</nav>
$(document).ready(function() {
$(".has-sub").click(function() {
$(this).find(".sub-menu").slideToggle(500);
$(this).parent().children(".has-sub").not(this).find(".sub-menu").slideUp(500);
});
});
从代码中可以看到,i
元素有一个类名叫做 fa-angle-down
。当被点击时,li
元素会展开。但我想在展开时移除 i
元素的 fa-angle-down
类,并添加一个 fa-angle-up
类。请问如何实现这个功能呢?
谢谢。
导航栏的 CSS 如下所示:
nav {
background : #034893;
height : 50px;
}
nav ul,
nav li,
nav a {
margin : 0;
padding : 0;
}
nav > ul > li {
color : white;
display : block;
float : left;
font-size : 18px;
line-height : 50px;
position : relative;
transition : all .3s linear;
width : 25%;
z-index : 999;
}
nav > ul > li:hover {
background : #88bffc;
color : #333;
cursor : pointer;
}
nav > ul > li > ul {
background : #034893;
left : 0;
margin : 0 auto;
position : absolute;
right : 0;
text-align : left;
}
nav ul ul a {
color : white;
display : block;
font-size : 14px;
padding : 6px 12px;
}
nav ul ul a:hover {
background : #88bffc;
}