手风琴激活不适用于首次加载

时间:2013-08-24 03:51:46

标签: jquery

当它第一次加载我试图激活第一个div时它会使所有div除了第一个以外都处于活动状态。 here它在jsfiddle上。

$(".accordion > span").click(function(){
  $('.accordion > span').removeClass('active');

  $(this).addClass('active');
    if(false == $(this).next().is(':visible')) {
        $('.accordion > div').slideUp(300);
    }
    $(this).next().slideToggle(300);
});

var animationIsOff = $.fx.off;
$.fx.off = true;
$('.accordion > span:eq(0)').click()
$.fx.off = animationIsOff;

这是HTML

<div class="accordion">
    <span>Accor 1</span>
    <div>
Content here
    </div>
</div>

<div class="accordion">
    <span>Accor 2</span>
    <div>
Content here
    </div>
</div>

<div class="accordion">
    <span>Accor 2</span>
    <div>
Content here
    </div>
</div>

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

你非常接近。

您需要做的就是为第一个范围添加active类。

$('.accordion > span:eq(0)').addClass('active');

http://jsfiddle.net/ym2E3/2/

您可以hide其他div

$('.accordion > span:not(:eq(0))').next('div').css('display','none');

http://jsfiddle.net/ym2E3/9/