У меня есть базовый список с названиями.В идеальном мире, когда пользователь щелкает заголовок или вложенный значок, отображается описательный абзац, и значок меняется.Если пользователь переходит от заголовка к заголовку, открывая и закрывая, прежде чем двигаться дальше, тогда нет проблем, но открывайте и двигайтесь, чтобы открыть следующее, и все становится странным и ошибочным.Абзац будет переключаться, но значок останется прежним.
Сценарий совершенного мира, заголовок или изображение нажаты, значок меняется на минус, и отображается абзац, абзац остается открытым, а следующий заголовок нажимается, чтоизменение абзаца и значка и так далее.Хэшировал и перефразировал это снова и снова, и я в растерянности.
$(".hold-text").click(function() {
if (!$("img").hasClass("foo")) {
$(this).find(".title").children("img").attr("src", "minus-icon.png").addClass("foo");
$(this).children("p").toggle();
} else {
$(this).find(".title").children("img").attr("src", "plus-icon.png").removeClass("foo");
$(this).children("p").toggle();
}
});
.hold-text>p {
display: none
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li class="hold-text">
<h3 class="title">lorem blah<img class="img" src="plus-icon.png" /></h3>
<p>text</p>
</li>
<li class="hold-text">
<h3 class="title">lorem blah<img class="img" src="plus-icon.png" /></h3>
<p>text</p>
</li>
<li class="hold-text">
<h3 class="title">lorem blah<img class="img" src="plus-icon.png" /></h3>
<p>text</p>
</li>
</ul>