Задать вопрос
@intriga93

Как показывать нужный блок в зависимости от клика?

  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Кого кликаем, кого показываем, какой класс отвечает за показ, через какой атрибут задаётся связь кнопок и блоков:

const buttonOpenSelector = '.project__zoom';
const buttonCloseSelector = '.overlay--close';
const contentSelector = '.overlay--gallery';
const key = 'gallery';
const attr = `data-${key}`;
const activeClass = 'overlay--active';

Вот jquery:

$(document)
  .on('click', buttonOpenSelector, function() {
    $(`${contentSelector}[${attr}="${$(this).data(key)}"]`).addClass(activeClass);
  })
  .on('click', buttonCloseSelector, function(){
    $(this).closest(contentSelector).removeClass(activeClass);
  });

А вот jquery нет:

document.addEventListener('click', ({ target: t }) => {
  t
    .closest(buttonCloseSelector)
    ?.closest(contentSelector)
    .classList
    .remove(activeClass);

  (t = t.closest(buttonOpenSelector)) && document
    .querySelector(`${contentSelector}[${attr}="${t.dataset[key]}"]`)
    .classList
    .add(activeClass);
});
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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