MutationObserver - как прослушать изменения класса определенного элемента? - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть слайдер, и я хочу запустить событие в зависимости от того, какой слайд активен. Поскольку сам слайдер находится вне моего контроля, я собираюсь воспользоваться решением mutationObserver для прослушивания изменений классов на слайдах.

Это то, что у меня пока есть, но оно даже не доходит до консоли. часть журнала. В чем может быть проблема? Он не выдает ошибок, он просто не работает.

jQuery(document).ready(function($) {
  var $slides = $("#hero-slider .swiper-slide");

  var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
      if (mutation.attributeName === "class") {
        console.log('mutationobs worked');

        if (($('#hero-slider .swiper-slide.swiper-slide-active').attr('data-swiper-slide-index') == 0) || ($('#hero-slider .swiper-slide.swiper-slide-duplicate-active').attr('data-swiper-slide-index') == 0)) {
          $('#landing-hero .elementor-shape').css('z-index', '0');
        } else if (($('#hero-slider .swiper-slide.swiper-slide-active').attr('data-swiper-slide-index') == 1) || ($('#hero-slider .swiper-slide.swiper-slide-duplicate-active').attr('data-swiper-slide-index') == 1)) {
          $('#landing-hero .elementor-shape').css('z-index', '5');
        }
      }
    });
  });

  observer.observe($slides[0], {
    attributes: true
  });
});
...