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 le ' attach ', fonction de Drupal.behaviours.b. Les deux fonctions sont invoquées au chargement de la page, mais pas au chargement de contenu suivant AJAX.
// 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 faire en sorte que la fonction "attach" de Drupal.behaviours.b s'exécute à chaque fois qu'un module charge un nouveau contenu?
Ceci, à partir des commentaires dans misc/drupal.js
, explique comment il est censé fonctionner:
Essayez d'ajouter ceci dans Drupal.behavior.b:
Drupal.attachBehaviors($(this));