@MyQuestion
Начинающий Frontend

MutationObserver. Как передать переменную наружу?

Здравствуйте!

Задача, такая: если на ноду падает класс ошибки, вызываемый другим скриптом, то ничего не делаю, если нет ошибки, совершаю действие.

Что я делаю: слежу за мутацией элемента, проверяю класс, и пытаюсь передать флаг наружу. Не получается )
Мой код:
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)
      })
    })
  })


Я пытался объявлять переменные, функции заранее, я пытался писать в глобальный объект, всё бесполезно. Я запутался. Не знаю что делать.
Ранее пытался по сет таймауту ждать, пока пройдёт валидация стороннего скрипта, а уже потом проверять наличие класса и запускать мой код. Но мне не нравится, так себе решение.

Как передать переменную наружу?
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы