Начальный - ОБНОВЛЕНИЕ:
HTML:
<li class="span3 trainer-profiles active">
<aside class="trainer-info">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur, fugit hic ex delectus fugiat quidem atque esse. Quod, pariatur, voluptatem.</p>
</aside>
<img src="/img/placeholder/trainer-pic.png" alt="" class="trainer-pic">
<h2 class="trainer-name">name</h2>
<a href="#" class="trainer-icon"></a>
</li>
JS:
$(".trainer-profiles > a.trainer-icon").on("click", function(e){
e.preventDefault();
$(this).parent().toggleClass("active");
});
$(".trainers-view-all").on("click", function(e){
e.preventDefault();
$(".trainer-profiles").siblings().toggleClass("active");
});
Как видите, в одном разделе показан непосредственный дочерний элемент клика. Другой показывает все. Однако, если класс «активный» уже присутствует, когда вызывается другой блок кода, сценарий удаляет «активный» из-за toggleClass API.
Каков самый быстрый способ удалить все предыдущие активные классы перед использованием toggleClass API. Поскольку на данный момент любой класс с активным классом удаляется, а другие добавляются «активными».
Любая помощь приветствуется :)
Большое спасибо!
------> Решение
&.show-all{
@extend .trainer-profiles.active;
}
Создал новый класс, расширение предыдущего класса дает мне тот же результат.
jQuery:
$(".trainers-view-all").on("click", function(e){
e.preventDefault();
$(".trainer-profiles").siblings().toggleClass("show-all");
});
Добавив класс .show-all к переключателю, я имитировал поведение класса и то, как он находится внутри toggleClass. Когда класс удаляется, он не отменяет исходный класс .active.
Я почти уверен, что смогу привести jQuery в меньшее состояние, но в настоящее время он эффективен.