Я сделал пару изменений в вашем JS. - https://jsfiddle.net/LordJording/ftr4j0Ly/2/
$this.removeClass('is-active');
Строка выше убрала класс, если вы закрываете текущий открытый аккордеон
$this.parent().parent().find('.is-active').removeClass('is-active');
$this.addClass('is-active');
Первая строка смотрит на всех братьев и сестер и пытается найти уже активный элемент и удаляет класс is-active
Затем вторая строка добавляет класс is-active
к текущему элементу, который вы переключаете
$('.toggle').click(function(e) {
e.preventDefault();
var $this = $(this);
if ($this.next().hasClass('show')) {
$this.removeClass('is-active');
$this.next().removeClass('show');
$this.next().slideUp(350);
} else {
$this.parent().parent().find('.is-active').removeClass('is-active');
$this.addClass('is-active');
$this.parent().parent().find('li .inner').removeClass('show');
$this.parent().parent().find('li .inner').slideUp(350);
$this.next().toggleClass('show');
$this.next().slideToggle(350);
}
});
Тогда в вашем CSS вам нужно будет стилизовать элемент переключателя, если он имеет класс is-active
.toggle.is-active {
background-color: #ff00ff;
}
Я заметил, что в вашей демонстрационной программе codepen вы используете встроенный стиль для вложенного аккордеона, вы можете захотеть удалить его из встроенного и вместо этого использовать связанную таблицу стилей, так как это может вызвать проблемы с вашим стилем.