Класс лучше переключайте не у
.img-block
, а у их самых дальних не общих предков, т.е., у
.documents_block
. В этом случае не придётся переписывать js-код, если вдруг потребуется стилизовать ещё-что то, кроме
.img-block
, или если решите изменить внутреннюю структуру
.documents_block
. Вместо
.класс
дополнительные стили надо будет прописывать у
.класс .img-block
.
const itemSelector = '.documents_block';
const buttonSelector = `${itemSelector} .open-doc-list`;
const contentSelector = '.documents-content';
const activeClass = 'active';
const toggleEffect = 'slideToggle'; // или fadeToggle, или toggle
const onClick = e => $(e.currentTarget)
.closest(itemSelector)
.toggleClass(activeClass)
.find(contentSelector)
[toggleEffect]();
// обработчик клика подключаем к кнопкам
$(buttonSelector).click(onClick);
// или, если предполагается добавление новых блоков уже после подключения
// обработчика, то лучше будет повесить его на документ, тогда всё будет
// работать как надо без каких-либо дополнительных действий
$(document).on('click', buttonSelector, onClick);