Вместо того, чтобы вручную переключать классы каждого блока, сделаем функцию, которая будет принимать блок в качестве параметра и выполнять все необходимые действия:
function toggleClasses(block) {
const info = block.querySelector('.infoWrapper');
block.classList.toggle('marginBottom10');
block.classList.toggle('marginBottom120');
info.classList.toggle('displayNone');
info.classList.toggle('displayBlock');
}
Подключение отдельных обработчиков клика к каждой кнопке заменим одним делегированным обработчиком, а вместо ручного перебора всех блоков просто будем искать открытый:
document.addEventListener('click', function(e) {
const block = e.target.closest('.blockSvg');
if (block) {
const prevBlock = document.querySelector('.blockSvg.marginBottom120');
if (prevBlock && prevBlock !== block) {
toggleClasses(prevBlock);
}
toggleClasses(block);
}
});
В результате, объём кода
сократился на два порядка.
Ну и конечно, надо перевёрстывать, потому что вот это вот "подправляем положение блоков" - позорище какое-то.