Jquery简约手风琴

时间:2015-05-08 12:39:44

标签: javascript jquery accordion jquery-ui-accordion

我有简单的Jquery手风琴,但是在打开标签时我有改变标题颜色的问题

这是我的代码

HTML

<dl class="accordion-modal">

    <dt><a href=""><header>FIRST</header></a></dt>
            <dd class="active-accordian">FIRST CONTENT</dd>

<dt><a href=""><header>SECOND</header></a></dt>
<dd>SECOND CONTENT</dd>

</dl>

JS

(function($) {

  var allPanels = $('.accordion-modal > dd').hide();
  $('.accordion-modal > .active-accordian').show();

  $('.accordion-modal > dt > a').click(function() {
      $this = $(this);
      $target =  $this.parent().next();

      if(!$target.hasClass('active')){
         allPanels.removeClass('active').slideUp();
         $target.addClass('active').slideDown();
      }

    return false;
  });

})(jQuery);

CSS

header{
    background-color:green;
}

.active{
    background-color:red;
}

.active-header-color{
    background-color:blue;
}

显示某些内容以向该标头添加类时,我需要什么? 这是工作小提琴 https://jsfiddle.net/7hLzqoxe/4/

1 个答案:

答案 0 :(得分:1)

这是我的小提琴。 参考它

您需要做的就是将display:inline-block添加到<a>元素,因为它是内联元素。

https://jsfiddle.net/7hLzqoxe/5/

这是需要改变的主要部分

  $('.accordion-modal > dt > a').click(function () {
                    $(this).children('header').addClass('green');
$(this).parent().siblings().children('a').children('header').removeClass('green');                        //$(this).parent().siblings().children('a').removeClass('green');
                    allPanels.slideUp();
                    $(this).parent().next().slideDown();
                    return false;
                });

更新了JS Fiddle https://jsfiddle.net/7hLzqoxe/6/