@alexbog90

Как передать значение переменной в другую функцию, используя addEventListener?

Добрый день.

Есть глобальная переменная num = 1, которая используется в первой функции. Первая функция изменяет эту переменную, скажем, теперь num = 3. Как теперь мне переписать глобальную переменную, чтобы она равнялась 3 и чтобы на основании уже измененной переменной вторая функция что-то делала?

let num = 1;

document.querySelector(".buttons-add-to-totals__button").addEventListener("click", function() {
  if (document.querySelector(`.food-item-${num}-text-container`).classList.contains("hidden")) {
    num;
  } else {
    num++;
  }
  // немного кода, меняем глобальную переменную num
});

// уже в первой строке нужно использовать обновленную глобальную переменную
document.querySelector(`.food-item-${num}-bin`).addEventListener("click", function() {
  if (document.querySelector(`.food-item-${num}-text-container`).classList.contains("hidden")) {
    num;
  } else {
    num--;
  }
  // немного кода
});
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Слушать события клика на всех элементах с классами .food-item-* (может, у них у всех есть какой-то общий класс?) или document.querySelectorAll('[class^=.food-item-]')

При клике брать значение классов, похожих на .food-item-NNN-bin (регуляркой) и выдирать оттуда число.

Но это, вестимо, костыль.

Тут не хорошо, что значение класса используется не для отображения элемента, а для хранения каких-то его данных, этого самого числа. Класс обычно один-для-нескольких элементов. А для данных элемента есть data-атрибуты.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы