J'ai deux modules différents qui, à bien des égards, fonctionnent ensemble. Une des choses sur lesquelles ils travaillent ensemble est que le module A charge le contenu via AJAX et que le module B doit attacher des écouteurs d'événements au contenu chargé.
Cependant, il semble que lorsque le contenu est chargé via AJAX par le module A, seule la fonction «attach» de Drupal.behaviours.a est invoquée, et non la fonction «attach» de Drupal.behaviours.b . Les deux fonctions sont invoquées lors du chargement de la page, mais pas lors du chargement de contenu AJAX ultérieur.
// This runs every time module A loads new content.
Drupal.behaviors.a = {
attach: function(context, settings) {
alert('a:attach');
}
}
// This only runs on page load, but never when module A loads new content.
Drupal.behaviors.b = {
attach: function(context, settings) {
alert('b:attach');
}
}
Comment puis-je exécuter la fonction «attach» de Drupal.behaviours.b à chaque fois qu'un module charge un nouveau contenu?
$('body').ajaxSuccess(Drupal.attachBehaviors);
probablement
Drupal.attachBehaviors();
au rappel de succès ajax?