Я борюсь с реализацией собственного аккордеона. Это действительно просто показ / скрытие слайд-тогл, но я хочу, чтобы одновременно открывалось только ОДИН тумблер, с добавлением и удалением jquery классов для дополнительного стиля.
Приведенный ниже код МОЖНО работает ... часть, которая бросает меня за цикл - это добавление / удаление класса "active" в моем элементе h4. Когда кто-то щелкает по H4, он должен получить класс «active», а все остальные элементы h4 в моем блоке удалят «active». Я пробовал это миллион способов, и я просто не могу понять это.
Вот пример моего HTML ...
<div class="accord-block">
<h4 class="accordLink"><a href="#">Title of box</a></h4>
<div class="accord-container">
<div class="accord-content">
<p>Lorem ipsum content dolor sit amet desu</p>
</div>
</div>
</div>
<div class="accord-block">
<h4 class="accordLink"><a href="#">Another title of another box</a></h4>
<div class="accord-container">
<div class="accord-content">
<p>Lorem ipsum content dolor sit amet desu</p>
</div>
</div>
</div>
Вот мой jquery ...
$(document).ready(function(){
$(".accord-container").hide();
$("h4.accordLink").click(function(){
$(".accord-block").find(".active").removeClass("active");
$(this).toggleClass("active").next().slideToggle("fast");
$(this).parent().toggleClass("activeToggle").siblings()
.removeClass("activeToggle").children(".accord-container").hide("fast");
return false;
});
});
Любое понимание было бы фантастическим. Я иду по этому пути, потому что мне нужен «accord-block» для получения одного набора CSS и идентификаторов, и я не хочу использовать пользовательский интерфейс Jquery, когда я чувствую, что это решение почти все.
Спасибо!
Изменить, чтобы добавить: я забыл описать проблему, с которой я столкнулся! В текущем коде выше, когда вы нажимаете один h4.accordLink «open», а затем «closed», jquery не удаляет класс «active». Он прекрасно работает, когда вы нажимаете между блоками аккордов, но не при открытии и закрытии одного блока.