distCom
@distCom
Начинающий программист

Как сделать закрытие модального окна?

Привет, сделал открытие 2 модальных окон в 1 функции, каждое окно привязано к своей кнопке, раньше у меня было одно и работало нормально, но я в функцию добавил второе и теперь не работает закрытие на крестик, функция почему то перестала работать
5dc9ad479dadf210864034.jpeg
5dc9ad811cae2518332561.jpeg
const modal = document.querySelector(".popup");   /* 1 окно*/
const trigger = document.querySelector(".user-info__button");  /* кнопка открытия 1 окна */
const closeButton = document.querySelector(".popup__close");  /* кнопка закрытия */
const modalProfile = document.querySelector('.popup_profile');  /* 2 окно*/
const profile = document.querySelector(".user-info__edit_button"); /* кнопка открытия 2 окна */
/* Открытие модального окна */
function toggleModal(event) {
   
  if (event.target.matches('.user-info__button')) {
    modal.classList.toggle("popup_is-opened");
  }
 else if (event.target.matches('.user-info__edit_button')) {
   modalProfile.classList.add('popup_is-opened');
 }
 
}


profile.addEventListener("click", toggleModal);
trigger.addEventListener("click", toggleModal);
closeButton.addEventListener("click", toggleModal);
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
angela_merkel
@angela_merkel
Frontend developer, youtube bloger and a good girl
Раз у тебя стало две кнопки, которые должны закрывать, то нужно применять document.querySelectorAll вместо document.querySelector
Вот одно из решений
const modal = document.querySelector(".popup");   /* 1 окно*/
const trigger = document.querySelector(".user-info__button");  /* кнопка открытия 1 окна */
const closeButton = document.querySelectorAll(".popup__close");  /* кнопка закрытия */
const modalProfile = document.querySelector('.popup_profile');  /* 2 окно*/
const profile = document.querySelector(".user-info__edit_button"); /* кнопка открытия 2 окна */
/* Открытие модального окна */
function toggleModal(event) {

	if (event.target.matches('.user-info__button')) {
		modal.classList.add("popup_is-opened");
	} else if(event.target.matches(".user-info__edit_button")) {
		modalProfile.classList.add('popup_is-opened');
	} 
	else if (event.target.matches('.popup .popup__close')) {
		modal.classList.remove("popup_is-opened");
	} else if (event.target.matches('.popup_profile .popup__close')) {
		modalProfile.classList.remove('popup_is-opened');
	}
}


profile.addEventListener("click", toggleModal);
trigger.addEventListener("click", toggleModal);
closeButton.forEach(btn => btn.addEventListener("click", toggleModal));
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
13 дек. 2019, в 01:04
30000 руб./за проект
12 дек. 2019, в 23:19
10000 руб./за проект
12 дек. 2019, в 23:04
500000 руб./за проект