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

Как определить какой блок нужно переключать?



Есть три одинаковых элемента, с кнопками переключение добавляется класс _active, не могли бы помочь как сделать что бы при переключение класс менялся только у нужного блока
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
chelovekmuravei
@chelovekmuravei
\(-_-)/ раз два три четыре
Примерно так можно исправить код. Собрать все parents, пройтись по ним forEach и передавать в on(parent)
document.addEventListener( "DOMContentLoaded" , function() {
  const on = (parent, event, selector, fn) => parent.addEventListener(event, ({target}) => {
         if(target = target.closest(selector)) fn(target)
     });
  const parents = document.querySelectorAll(".section-gallery-wrapper.flexbox");
  parents.forEach( parent => {
     //const on = (parent, event, selector, fn) => parent.addEventListener(event, ({target}) => {
     //    if(target = target.closest(selector)) fn(target)
     //});
     //const parent = document.querySelector(".section-gallery-wrapper.flexbox");
     const children  = parent.children;
     let index = [...parent.children].indexOf(parent.querySelector("._active"));
     const show = ({dataset : {up}}) => {
       children[index].classList.remove("_active");
       index = (Number(up) + index + children.length) % children.length;
       children[index].classList.add("_active");
     };
     //on(document, "click", "[data-up]", show);
    on(parent, "click", "[data-up]", show);
  });
 });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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