Простое аккордеонное меню (jQuery) - PullRequest
0 голосов
/ 18 марта 2010

jQuery:

// ACCORDION
$('.accordion .answer').hide(); // hide all
$('.accordion .question').click(function(){
     $('.accordion .answer').slideUp(); // hide all open
     $(this).addClass('active').next().slideDown(); // show the anwser
     return false;
});

HTML:

<dl class="accordion">
    <dt class="question">question</dt>
    <dd class="answer">answer</dd>
    <dt class="question">question</dt>
    <dd class="answer">answer</dd>
</dl>

... работает, но

  • Активный класс должен быть удален из неактивных элементов вопроса &
  • По крайней мере, один из ответов остается открытым;все ответы должны быть в состоянии закрыть.

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 марта 2010

Хорошо, понял, это:

$('.accordion .answer').hide(); // hide all
$(".accordion .question").click(function () {
    $(this).toggleClass('active').next(".answer").slideToggle(300).siblings(".answer").slideUp("slow");
    $(this).siblings().removeClass('active');
});
1 голос
/ 18 марта 2010
$('.accordion .answer').hide(); // hide all
$('.accordion .question').click(function(){
    if($(this).hasClass('active')) {
        $(this).removeClass('active').next().slideUp();
    } else {
        $('.accordion .answer').removeClass('active').slideUp();
        $(this).addClass('active').next().slideDown();
    }
    return false;
});

Но вы действительно должны взглянуть на jQuery UI Accordion .

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