Делегирование

О

Олег

Шопмейкер
#1
JavaScript:
$('[data-toggle="offcanvas"]').on('click', function(e) {
    $('#menu-mobile-ns.navmenu-fixed-left').toggleClass('active');
    $('body').toggleClass('modal-open');
    $('#mob-search-block').hide();
    $('.mobm-menu-blur').toggleClass('active-blur');
});
Есть такой код делает некоторые события, на кнопе которая появляется сразу все работает ок, на кнопке которая потом добавляется в другом меню, уже ничего не работает, я так понимаю здесь нужно делегирование, как это сделать может кто помочь? если не очень большая задача
 
ALarik

ALarik

expert
#2
если вопрос связан с ajax подгрузкой, то советую тут ознакомится с решением, по вашему же примеру не могу понять что к чему и куда появляется и где не работает, просто кусочек кода рассказывает мне о том, что при клике на элемент с аттрибутом offcanvas происходит следующее:
  1. элементу с ID menu-mobile-ns.navmenu-fixed-left добавляется\убирается класс active
  2. базовому тегу body добавляется\убирается класс modal-open
  3. элемент с ID mob-search-block присваивается свойства display: none:
  4. элементу с названием класса mobm-menu-blur добавляется\убирается класс active-blur
и все, это вся информативность вашего сообщения, уважаемый, больше никакой информации я не получил, чтобы хоть как то помочь в решении Вашего вопроса, но потратил, как минимум в 5-ть раз больше времени, чем это сделали вы, создав тему. поэтому попрошу, будьте внимательны при формулировании вопроса, цените не только своё но и наше время, ведь Вы могли получить исчерпывающий ответ, который не только решил бы проблему но и добавил новых знаний, а вместо этого, никто не получил ожидаемого результата. с пониманием.
 
OP
О

Олег

Шопмейкер
Thread Starter #3
JavaScript:
const menuTopFixed = document.querySelector('body');

menuTopFixed.addEventListener('click', function (e) {
    let targetItem = e.target;
    if (targetItem.closest('[data-toggle="offcanvas"]')) {
        $('#menu-mobile-ns.navmenu-fixed-left').toggleClass('active');
        $('body').toggleClass('modal-open');
        $('#mob-search-block').hide();
        $('.mobm-menu-blur').toggleClass('active-blur');
    }
});
В общем как-то так решил проблему
 
Останнє редагування модератором:
Симпатії: Baco
Зверху