@Alex_92

Как запустить функцию в необходимом мне месте?

Есть 4 блока.
Когда захожу на третий, нужно чтобы срабатывала функция.
Как это сделать?

Сделал так, но не срабатывает...
const panelThreeFunc = () => {
            if (index == 0) {
              resultValue += this.ifIs;
            }
            if (index == 2) {
              resultValue += this.ifIsNot;
            }
          };

          panelAll.forEach((elem, index) => {
            elem.addEventListener('click', () => {
              if (index == 2) {

                panelThreeFunc();
              }
            });
          });


Весь код
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
bingo347
@bingo347
Бородатый программер
НИКОГДА не создавайте функции внутри цикла!
10 РАЗ ПОДУМАЙТЕ, а нужен ли цикл, если тело цикла состоит из единственного блока if!

В частности, когда в условии блока if сравнивается индекс с константой (или со значением известным за пределами цикла) - ЦИКЛ 100% НЕ НУЖЕН!
Меняем
panelAll.forEach((elem, index) => {
  elem.addEventListener('click', () => {
    if (index == 2) {
      panelThreeFunc();
    }
  });
});
на
panelAll[2].addEventListener('click', () => panelThreeFunc());


Теперь по вопросу:
Откуда panelThreeFunc берет переменную index?
Есть ли ошибки в консоли?
Проверяли ли, что обработчик навешивается?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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