АГ
Аня Гармашова

JavaScript откуда появляется класс undefined?

Подскажите кто знает JavaScript отрабатывают 2 функции добавляющие и удаляющие классы

let outPopUp = document.querySelector('.my-popup-style'),
slise = document.querySelector('.my-popup'),
closest = document.querySelectorAll(".closed"),
openPopUp = document.querySelectorAll('.open-popup');

openPopUp.forEach(function (elem) {
elem.addEventListener('click', function () {
slise.classList.add('my-popup-visible', outPopUp.classList.add('my-popup-style-visible'));
});
});

closest.forEach(function(elem) { // проходим все элементы коллекции
elem.addEventListener("click", function(){
slise.classList.remove('my-popup-visible', outPopUp.classList.remove('my-popup-style-visible'));
});
});

все работает нормально, но в инспекторе кода вылазит какой-то левый класс undefined, т. е.

class="my-popup-style-visible undefined"

как можно пофиксить, откуда он берется?

Ванюшка
Ванюшка

Предполагаю, что проблема в slise.classList.add('my-popup-visible', outPopUp.classList.add('my-popup-style-visible')); у тебя первым параметром стоит 'my-popup-visible', а вторым параметром - именно undefined, т. к. outPopUp.classList.add('my-popup-style-visible') НЕ возвращает значения, а отсутствие значения - это и есть undefined. Вот этот undefined и добавляется.
Должно быть:
slise.classList.add('my-popup-visible');
outPopUp.classList.add('my-popup-style-visible');

Аналогично с slise.classList.remove('my-popup-visible', outPopUp.classList.remove('my-popup-style-visible')); - тоже надо в два независимых оператора делать.

Natalya Karanevich
Natalya Karanevich

что то ты неправильно делаешь

Похожие вопросы
JavaScript error: Undefined variable: currentAudioId
javascript почему выводит undefined хоть и не равна ундефинед+
Как зашифровать текст в javascript?
Нужно решить задачу по JavaScript.
JavaScript Список Исправьте ошибку.
Javascript, осуществить имитацию нажатия
Javascript language="LiveScript" Это какой-то отдельный язык? Не совсем javascript?
В чем ошибка? JavaScript
Как создать обьект в javascript?
Javascript Как дописать код?