Итак, я провел много исследований, пытаясь найти это, но не может найти что-то, что работает..slideToggle() ТОЛЬКО элементы, которые рухнули
У меня есть несколько div на странице с использованием .slidetoggle(); для отображения большего содержимого в дочернем div. То, что я хотел бы сделать, это добавить кнопку «развернуть все», которая расширит только тех, кто закрыт, оставив остальных в покое. В настоящее время развернуть все работает, но только если все элементы свернуты. В противном случае он в основном просто переключается, поэтому, если пользователь открывает один элемент, затем решает позже, он просто хочет просмотреть все, он откроет те, которые закрыты, но закройте тот, который уже открыт. Я знаю, что должен быть простой способ обойти это, но я относительно новичок в jQuery и javascript.
Вот мой текущий код - мои извинения, если он небрежный, я новичок!
$(document).ready(function(){
$(".question1").click(function(){
$("#answer1").slideToggle();
});
});
$(document).ready(function(){
$(".question2").click(function(){
$("#answer2").slideToggle();
});
});
$(document).ready(function(){
$(".question3").click(function(){
$("#answer3").slideToggle();
});
});
$(document).ready(function(){
$(".expandall").click(function(){
$(".answer").slideToggle();
});
});
И мой html-
<button class="expandall">Expand All</button>
<div class="question">
<button class="question1"><b>This is a Question</b></button>
</div>
<div id="answer1" class="answer" style="display:none;">
This is an answer
</div></div>
<div class="question">
<button class="question2"><b>This is a Question</b></button>
</div>
<div id="answer2" class="answer" style="display:none;">
This is an answer
</div></div>
<div class="question">
<button href="#" class="question3"><b>This is a Question</b></button>
</div>
<div id="answer3" class="answer" style="display:none;">
This is an answer
</div></div>
Помощь!
Большое вам спасибо! Это работало как шарм :) и СПАСИБО за отзывы о повторении функции $ (document) .ready и повторении функций щелчка. Я знал, что существует способ контролировать только дочерний div родителя, поэтому вы можете просто использовать одну функцию, но не слишком уверены в том, как это сделать. –
@ KiannaChauntis Glad Я смог вам помочь :). Если это ответит на ваш вопрос, вы можете принять этот ответ, поэтому вопрос будет отмечен как закрытый/разрешенный. Если вы не знаете, как это работает и почему, просто проверьте http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#answer-5235. –