@wiyod

Почему код не работает в цикле?

Вот так работает

const moveTo = new MoveTo()
    const trigger = document.getElementsByClassName('js-trigger')[0]

    moveTo.registerTrigger(trigger, function (target) {
      trigger.blur()
      if (target instanceof HTMLElement) {
        target.focus()
      }
    })


А вот так выбивает ошибку
Uncaught TypeError: Cannot read property 'blur' of undefined


const moveTo = new MoveTo()
    const triggers = document.getElementsByClassName('js-trigger')
    for (var i = 0; i < triggers.length; i++) {
      moveTo.registerTrigger(triggers[i], function (target) {
        triggers[i].blur()
        if (target instanceof HTMLElement) {
          target.focus()
        }
      })
    }


Также пробовал вместо triggers[i] просто i, результат такой же.
Как выполнить это в цикле и перебрать все элементы?
  • Вопрос задан
  • 255 просмотров
Пригласить эксперта
Ответы на вопрос 1
  • evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    const moveTo = new MoveTo();
    const triggers = document.querySelectorAll(".js-trigger");
    
    for (let trigger of triggers) {
      moveTo.registerTrigger(trigger, target => {
        trigger.blur();
        
        if (target instanceof HTMLElement) target.focus();
      });
    }
    Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы