2014-02-08 2 views
1

Я сделал JQUERY Аккордеоны, которые отлично работают.Сделать аккордеон Close on second click JQUERY

HTML:

<div id="accordion"> 

<div class="title"><span>Accordian 1</span></div> 
<div class="hide"> 

    <p>hidden content</p> 

</div> 

<div class="title"><span>Accordian 2</span></div> 
<div class="hide"> 

    <p>hidden content</p> 

</div> 


<div class="title"><span>Accordian 3</span></div> 
<div class="hide"> 

    <p>hidden content</p> 

</div> 

<div class="title"><span>Close all the accordions</span></div> 

</div> 

Jquery

$(document).ready(function() { 

    $('#accordion .hide').hide(); 
    $('#accordion .title span').click(function(){ 
      $('#accordion .hide').slideUp(); 
      $(this).parent().next().slideDown(); 

      return false; 
    }); 

});

Что бы я хотел, это когда пользователь нажимает на аккордеон, чтобы открыть его, а затем щелкнул по нему второй раз, когда он закроется.

Итак, 1-й клик = открытый, 2 клика = закрыть.

Как бы я это сделал?

Благодаря

+0

Почему не slideToggle() ?? –

+0

@ user2620746 http://jsfiddle.net/pranavcbalan/hy4kF/3/ –

ответ

1

HTML:

<div id="accordion"> 
<div class="title"><span>Accordian 1</span></div> 
<div class="hide"> 
    <p>hidden content</p> 
</div> 
<div class="title"><span>Accordian 2</span></div> 
<div class="hide"> 
    <p>hidden content</p> 
</div> 
<div class="title"><span>Accordian 3</span></div> 
<div class="hide"> 
    <p>hidden content</p> 
</div> 
<div class="close"><span>Close all the accordions</span></div> 
</div> 

slideToggle() Используйте для переключения между slideUp и slideDown

$(document).ready(function() {  
    $('#accordion .hide').hide(); 
    $('#accordion .title span').click(function(){ 
      $(this).parent().next() 
        .slideToggle() 
        .siblings('.hide').slideUp(); 
      return false; 
    }); 
    $('.close').click(function(){ 
     $('#accordion .hide').slideUp(); 
    }); 
}); 

Fiddle Demo

+0

почему downote ?????????? –

+0

Благодарим за ответ, но это решение работает, но функция «закрыть все» не работает – mickzer

+0

@ user2620746 http://jsfiddle.net/pranavcbalan/hy4kF/5/ –

0

T чень это:

$('#accordion .hide').hide(); 
$('#accordion .title span').click(function() { 
    $(this).parent().next().slideToggle().siblings('.hide').slideUp(); 
}); 

$('#accordion .title span:last').click(function() { 
    $('#accordion .hide').slideUp(); 
}); 

Fiddle Demo