У меня есть список вопросов и ответов с надписью «Открыть все / Закрыть все» вверху с отдельными кнопками открытия и закрытия изображения, которые переключаются при нажатии. Это отлично работает.
Затем следуйте индивидуальным вопросам и ответам, и у каждого есть свое открытое и закрытое изображение.
Если сначала нажать кнопку «Открыть все / закрыть все», как только страница загрузится, а затем нажать на отдельные вопросы и ответы, открыть / закрыть изображения, все работает нормально. Но если после загрузки страницы вы нажимаете на отдельные вопросы и ответы, открывают / закрывают изображения, минуя «Открыть все / Закрыть все», они отображают неподходящее открытое или закрытое изображение.
Вот код страницы:
<div class="answersee"><span>Open All</span><img src="assets/open.gif" border="0" alt="" /></div>
<div class="answerhide"><span>Close All</span><img src="assets/close.gif" border="0" alt="" /></div>
<div class="qa">
<div><img src="open.gif" border="0" alt="" /><span class="question">Question.</span></div>
<div class="answer"><p>Answer.</p></div>
</div>
Вот скрипт (также использует Jquery):
$(function() {
$(".qa").click(function() {
$(this).find("div").next().slideToggle("fast");
if ($(this).find("div:eq(0)").find("img").attr("src") == "open.gif") {
$(this).find("div:eq(0)").find("img").attr("src", "close.gif");
}
else {
$(this).find("div:eq(0)").find("img").attr("src", "open.gif");
}
});
$(".answersee").click(function() {
$(".answer").show("fast");
$(".qa > div > img").attr("src", "close.gif");
$(".answerhide").show();
$(".answersee").hide();
})
$(".answerhide").click(function() {
$(".answer").hide("fast");
$(".qa > div > img").attr("src", "open.gif");
$(".answersee").show();
$(".answerhide").hide();
})
});
Я не думаю, что это проблема CSS, или я бы включил этот код здесь. Нужно ли каким-то образом инициализировать скрипт? Или я ошибся в приведенном выше скрипте?