Закрыть переключаемый div при открытии другого - jQuery

У меня есть простой кусок jQuery, который я использую для переключения видимости div. Однако это работает хорошо, когда один div переключается, другие ранее переключенные div остаются открытыми. Есть ли простой способ обновить этот скрипт, чтобы закрыть другие div, когда он открыт?

JQuery

$(document).ready(function(){
$(".member").click(function(){
    $(this).next(".answer").slideToggle(100);
})
});

CSS

.answer {
    display:none;
}

HTML

<div class="member">
<p>member 1</p>
</div>

<div class="answer">
<p>hidden content</p>

<div class="member">
<p>member 2</p>
</div>

<div class="answer">
<p>hidden content</p>

Я не уверен, что лучший способ сделать это. Должен ли я добавить активный класс в активный div? Или есть более простой способ сделать это? Спасибо!

3 ответа

Решение

Вы можете найти любой другой элемент ответа (кроме того, на который нацелен элемент clicked), который виден, и скрыть их

$(document).ready(function () {
    var $answers = $('.answer');
    $(".member").click(function () {
        var $ans = $(this).next(".answer").stop(true).slideToggle(100);
        $answers.not($ans).filter(':visible').stop(true).slideUp();
    })
});

Демо: скрипка

$(document).ready(function(){
$(".member").click(function(){

    $(".answer").hide();

    $(this).next(".answer").show(100);
})
});

Попробуйте выше

Легко. Просто скройте все классы.answer по клику.., а затем покажите только тот, на который нажали

$(".member").click(function(){
    $(".answer").hide();
    $(this).next(".answer").slideToggle(100);
})
Другие вопросы по тегам