定制手风琴

时间:2012-01-12 19:18:40

标签: jquery accordion

我有下面的手风琴可以使用,但是当一个项目打开时再次点击它会重新打开而不是关闭。

我不确定是否有最佳方法来调整下面的代码来实现这一目标?

任何帮助或建议会很棒吗?

由于

$('.acc h2').click(function() {
    $('.acc h2.open').nextUntil('h2').stop(true, true).slideToggle();
    $('.acc h2.open').removeClass('open');
    $(this).nextUntil('h2').stop(true, true).slideToggle(900);
    $(this).toggleClass('open');
});

<div class="acc">

    <h2>1. Title 1</h2>   
    <div><p>text 1</p></div>

    <h2>2. Title 2</h2>
    <div><p>text 2</p></div>

    <h2>3.  Title 3</h2>
    <div><p>text 3</p></div>

</div><!--END acc-->

2 个答案:

答案 0 :(得分:2)

解决方案:

$('.acc h2').next('div').hide();
$('.acc h2').click(function() {
if($(this).next('div').is(':visible'))
{
    $(this).next('div').slideUp();    
}
else{
    $('.acc h2').next('div').slideUp();
    $(this).next('div').slideToggle();
}    
});

演示:

http://jsfiddle.net/5NAhV/1/

http://jsfiddle.net/5NAhV/2/

答案 1 :(得分:0)

切换问题是当用户多次点击时,动画开始排队,这很痛苦。

这是另一种选择:

http://jsfiddle.net/adaz/5NAhV/3/

编辑:

http://jsfiddle.net/5NAhV/2/是的,是(“:可见”)完成工作!