Hey guys I'm trying to create a view with an accordion using this HTML:
<ul class="left_menu_list">
<li class="left_menu_item active" data-item="firma">
<div>LA FIRMA</div>
<ul class="firma_list secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA firma_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
<li class="left_menu_item" data-item="areas">
<div>ÁREAS E INDUSTRIAS</div>
<ul class="areas_list hidden secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA areas_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
<li class="left_menu_item" data-item="oficinas">
<div>OFICINAS</div>
<ul class="oficinas_list hidden secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA oficinas_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
<li class="left_menu_item" data-item="equipo">
<div>EQUIPO</div>
<ul class="equipo_list hidden secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA equipo_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
<li class="left_menu_item" data-item="compromiso">
<div>COMPROMISO</div>
<ul class="compromiso_list hidden secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA compromiso_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
<li class="left_menu_item" data-item="comunicacion">
<div>COMUNICACIÓN</div>
<ul class="comunicacion_list hidden secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA comunicacion_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
<li class="left_menu_item" data-item="empleo">
<div>EMPLEO</div>
<ul class="empleo_list hidden secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA empleo_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
<li class="left_menu_item" data-item="alumni">
<div>ALUMNI</div>
<ul class="alumni_list hidden secondary_list">
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA empleo_list</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
<li class="secondary_list_item">LA FIRMA</li>
</ul>
</li>
</ul>
With this css:
.left_menu_list{
.left_menu_item{
.secondary_list{
display: none;
position: relative;
background: @white;
margin-top: 0;
left: -4.42vw;
width: 100%;
top: 0;
padding-left: 4.42vw;
.secondary_list_item{
margin-left: 20px;
}
}
}
I've create some JS code, trying to create the effect:
$('.left_menu_item').click(function(){
if(false == $(this).children('ul').is(':visible')) {
$(this).children('ul').slideUp(300);
}
$(this).children('ul').slideToggle();
});
The main problem is that slideDown() effect works perfectly but, the slideUp() one does not works. It makes the slide down, but when I click on another item, the slideUp does not trigger, it just get hiden with no effect.
Does anyone know why? Thanks.
Do it like below (only 3 line of code):-
$('.left_menu_item').click(function(){
$(this).children('ul').slideToggle();
$('.left_menu_item').not(this).children('ul').slideUp();
});
Note:- CSS
shown by you is wrong. Change it accordingly as i do in my answer
Also you can provide some time-span in both like slideToggle(500)
and slideUp(500)
to make it bit smother.
Working example with your code:-