Problem about keep current menu shows
Problem about keep current menu shows
This is my html menu code:
<!--sidebar start-->
<aside>
<div id="sidebar" class="nav-collapse ">
<!-- sidebar menu start-->
<ul class="sidebar-menu" id="nav-accordion">
<li class="sub-menu">
<a class="active" href="#">
<i class="icon-user"></i>
<span>Khách hàng</span>
</a>
<ul class="sub">
<li class="active"><a href="index.php?com=khach_hang&op=list">Danh sách</a></li>
<li><a href="index.php?com=khach_hang&op=add">Thêm mới</a></li>
</ul>
</li>
<li class="sub-menu">
<a href="#" >
<i class="icon-sitemap"></i>
<span>Loại sản phẩm</span>
</a>
<ul class="sub">
<li><a href="index.php?com=loai_sp&op=list">Danh sách</a></li>
<li><a href="index.php?com=loai_sp&op=add">Thêm mới</a></li>
</ul>
</li>
</ul>
<!-- sidebar menu end-->
</div>
</aside>
<!--sidebar end-->
And here is my CSS code:
ul.sidebar-menu , ul.sidebar-menu li ul.sub{
margin: -2px 0 0;
padding: 0;
}
ul.sidebar-menu {
margin-top: 75px;
}
#sidebar > ul > li > ul.sub {
display: none;
}
#sidebar > ul > li.active > ul.sub, #sidebar > ul > li > ul.sub > li > a {
display: block;
}
ul.sidebar-menu li ul.sub li{
background: #35404D;
margin-bottom: 0;
margin-left: 0;
margin-right: 0;
}
ul.sidebar-menu li ul.sub li:last-child{
border-radius: 0 0 4px 4px;
-webkit-border-radius: 0 0 4px 4px;
}
ul.sidebar-menu li ul.sub li a {
font-size: 12px;
padding: 6px 0;
line-height: 35px;
height: 35px;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
color: #aeb2b7;
}
ul.sidebar-menu li ul.sub li a:hover, ul.sidebar-menu li ul.sub li.active a {
color: #FF6C60;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
display: block;
}
ul.sidebar-menu li {
/*line-height: 20px !important;*/
margin-bottom: 5px;
margin-left:10px;
margin-right:10px;
}
ul.sidebar-menu li.sub-menu{
line-height: 15px;
}
ul.sidebar-menu li a span{
display: inline-block;
}
ul.sidebar-menu li a{
color: #aeb2b7;
text-decoration: none;
display: block;
padding: 15px 0 15px 10px;
font-size: 12px;
outline: none;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
}
ul.sidebar-menu li a.active, ul.sidebar-menu li a:hover, ul.sidebar-menu li a:focus {
background: #35404d;
color: #fff;
display: block;
border-radius: 4px;
-webkit-border-radius: 4px;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
}
ul.sidebar-menu li a i {
font-size: 15px;
padding-right: 6px;
}
ul.sidebar-menu li a:hover i, ul.sidebar-menu li a:focus i {
color: #FF6C60;
}
ul.sidebar-menu li a.active i {
color: #FF6C60;
}
The problem is I use jQuery code as below but I couldn't add class "active" in my menu code (in order to keep current sub-menu when clicking it):
<script src="{$src}/js/jquery.js"></script>
<script src="{$src}/js/jquery-1.8.3.min.js"></script>
$(document).ready(function () {
$('ul.sidebar-menu > li.sub-menu a span').click(function () {
$(this).parent().find('.active').removeClass('active');
$(this).parent().addClass('active');
});
$('ul.sidebar-menu > li.sub-menu ul.sub > li a').click(function () {
$(this).parent().find('.active').removeClass('active');
$(this).parent().addClass('active');
});
});
I searched and tried many ways, but none of them works = = Hope anyone can help me solve this case. I'll be very thankful to you!!
Topic Participants
daisy_dtt
jakecigar