Подскажите как решить проблему! Есть аккордеон с заголовком, в заголовке есть span который меняется при клике с плюса на минус, сам аккордеон раскрывается при клике на этот заголовок. Проблема в том, что не могу найти решение как сменять иконку на минус и плюс только активному аккордеону, они у меня меняются одновременно в открытом и не открытом. пробовал (this) не работает.
html
<div class="slide-body__button">
<h4 class="slide-body__title">Требования</h4>
<div class="slide-body-icon">
<span class="slide-body-icon__item"></span>
</div>
</div>
<div class="slide-body-panel">
<p class="slide-body__description">Организация связи удаленных объектов — оценка местности, подбор оборудования, составление плана-схемы размещения антенного поста и оборудования.</p>
<p class="slide-body__description">Ввод в эксплуатацию систем связи удаленных объектов – монтаж, подключение и настройка спутниковых антенн, усилителей сотовой связи, радиолиний и пр.</p>
<p class="slide-body__description">Тестирование оборудования, отработка режимов работы, контроль проектных параметров работы оборудования радиосвязи.</p>
<p class="slide-body__description">Обслуживание объектов связи — перенастройка, перевоз, мониторинг, оптимизация.</p>
</div>
css
&__button {
padding: 15px 0;
width: 100%;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #DAE2E7;
transition: 0.4s;
&:hover {
border-bottom: 1px solid #394D56;
}
}
&-panel {
padding: 15px 0;
display: none;
border-bottom: 1px solid #DAE2E7;
}
&-panel.active {
display: block;
height: auto;
transition: 1s;
}
&__title {
font-family: Inter;
font-style: normal;
font-weight: bold;
font-size: 24px;
line-height: 120%;
color: #394D56;
margin-bottom: 15px;
}
&-icon {
position: relative;
width: 30px;
height: 30px;
&__item {
background-color: #394D56;
position: absolute;
left: 0;
width: 14px;
height: 4px;
top: 6px;
transition: 0.3s ease;
&:after {
content: '';
background-color: #394D56;
position: absolute;
left: 5px;
height: 14px;
width: 4px;
top: -5px;
transition: 0.3s ease;
}
&.active:after {
transform: rotate(-90deg);
}
}
jquery
$(document).ready(function () {
$('.slide-body__button').on('click', function () {
$(this).toggleClass('active');
$(this).next().slideToggle(300);
$('.slide-body-icon__item').toggleClass('active');
});
});
пример
https://codepen.io/kireevmaxim/pen/JjXdjom