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
});
});
}
};