Сделал такое решение, например если вы в зависимости полей скрываете одно или группу полей при наличии другого поля
то в спике тк и записей оно самой собой не скрывается только в форме создания.
Вам подойдет такой скрипт для списка тк
// Функция для проверки наличия .f_dogovor и скрытия элементов
function hideElementsInContainers() {
// Находим все контейнеры, которые нужно проверить
const containers = document.querySelectorAll('.icms-content-fields'); // Замените на ваш класс контейнера
containers.forEach(container => {
const dogovorElement = container.querySelector('.f_dogovor');
const payElements = container.querySelectorAll('.f_pay, .f_pay_do, .f_pay_fix, .f_money, .f_deal');
// Если элемент .f_dogovor найден, скрываем соответствующие элементы
if (dogovorElement) {
payElements.forEach(element => {
element.style.display = 'none'; // Скрываем элемент
});
}
});
}
// Вызов функции при загрузке страницы
document.addEventListener('DOMContentLoaded', hideElementsInContainers);
а если заменить .icms-content-fields на .content_item то для записи тк
.f_dogovor — вы меняете на системное имя своего поля при появлении которого должны пропадать остальные
.f_pay, .f_pay_do, .f_pay_fix, .f_money, .f_deal — меняете на системные имена своих полей которые должны исчезнуть
Такой код должен работать с автоматической подгрузкой контента в списке тк
// Функция для проверки наличия .f_dogovor и скрытия элементов
function hideElementsInContainers() {
// Находим все контейнеры, которые нужно проверить
const containers = document.querySelectorAll('.container'); // Замените на ваш класс контейнера
containers.forEach(container => {
const dogovorElement = container.querySelector('.f_dogovor');
const payElements = container.querySelectorAll('.f_pay, .f_pay_do, .f_pay_fix');
// Если элемент .f_dogovor найден, скрываем соответствующие элементы
if (dogovorElement) {
payElements.forEach(element => {
element.style.display = 'none'; // Скрываем элемент
});
}
});
}
// Функция для инициализации наблюдателя
function observeContainers() {
const observer = new MutationObserver(hideElementsInContainers);
// Настройки наблюдателя
const config = {
childList: true, // Следить за добавлением/удалением дочерних элементов
subtree: true // Следить за всеми уровнями дочерних элементов
};
// Наблюдаем за всего документа или конкретным родительским контейнером
observer.observe(document.body, config); // Замените document.body на конкретный элемент, если нужно
}
// Вызов функций при загрузке страницы
document.addEventListener('DOMContentLoaded', () => {
hideElementsInContainers(); // Скрыть элементы при первой загрузке
observeContainers(); // Начать наблюдение за изменениями
});