@agromov91

Переменная внутри функции?

Есть такая функция. Отслеживает клик по кнопке и создает попап с необходимой информацией.
Как поправить, что бы для map.appendChild(createCard(i)); был доступен номер нажатой кнопки?
Сейчас вылетает ошибка, так как i недоступен почему-то. Если вместо i подставить число, то все ок.

function clickPin() {
  var pinButton = document.querySelectorAll(".map__pin");
  for (var i = 1; i < pinButton.length; i++) {
    pinButton[i].addEventListener("click", function() {
      map.appendChild(createCard(i));
      var popup = document.querySelector(".map__card.popup");
      popup.classList.remove("hidden");
    });
  }
}
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
space2pacman
@space2pacman
Просто царь.
Сделать замыкание или вместо var - let

let делает на каждой итерации ссылку на переменную i с её значением (условно 10 переменных с разным значением)

var делает одну переменную и обновляет (после цикла будет доступно последнее значение)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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