Jak działa behavior?

Drupal.behaviors.nazwaBehawioru = {
  attach: function (context, settings) {
    // Twój kod
  }
};

Co tu jest ważne?

  • attach(context, settings)
    • context — fragment DOM, który właśnie został dodany (lub cały dokument przy pierwszym ładowaniu).
    • settings  — dane przekazane z PHP do JS (np. konfiguracja modułu).
  • Behaviors uruchamiają się wielokrotnie, więc musisz uważać, żeby nie podpiąć eventów kilka razy.

 


Jak uniknąć wielokrotnego wykonywania kodu?

Drupal daje do tego narzędzie: once().

Drupal.behaviors.example = {
  attach: function (context, settings) {
    once('exampleBehavior', '.button', context).forEach(function (el) {
      el.addEventListener('click', function () {
        console.log('Klik!');
      });
    });
  }
};

 

Przykład praktyczny: inicjalizacja slidera

Drupal.behaviors.sliderInit = {
  attach: function (context, settings) {
    once('sliderInit', '.my-slider', context).forEach(function (slider) {
      new Swiper(slider, {
        loop: true,
        autoplay: true
      });
    });
  }
};

 

Spis treści: