Здравствуйте!
Задача, такая: если на ноду падает класс ошибки, вызываемый другим скриптом, то ничего не делаю, если нет ошибки, совершаю действие.
Что я делаю: слежу за мутацией элемента, проверяю класс, и пытаюсь передать флаг наружу. Не получается )
Мой код:
let bannerForms = document.querySelectorAll('.banner-form__form')
bannerForms.forEach(bannerForm => {
let formBtn = bannerForm.querySelector('.banner-form__btn')
formBtn.addEventListener("click", function (e) {
let bannerInputs = bannerForm.querySelectorAll('.input')
bannerInputs.forEach(input => {
let isErr
let observer = new MutationObserver(function (e) {
let errInput = e[0].target.classList.contains('error')
if (!errInput) {
isErr = true
}
observer.disconnect()
})
observer.observe(input, {
attributes: true,
attributeFilter: ['class'],
childList: false,
characterData: false
})
console.log(isErr)
})
})
})
Я пытался объявлять переменные, функции заранее, я пытался писать в глобальный объект, всё бесполезно. Я запутался. Не знаю что делать.
Ранее пытался по сет таймауту ждать, пока пройдёт валидация стороннего скрипта, а уже потом проверять наличие класса и запускать мой код. Но мне не нравится, так себе решение.
Как передать переменную наружу?