Ich habe zwei verschiedene Module, die in vielerlei Hinsicht zusammenarbeiten. Sie arbeiten unter anderem daran, dass Modul A Inhalte über AJAX lädt und Modul B Ereignis-Listener an die geladenen Inhalte anfügt.
Es scheint jedoch, dass beim Laden von Inhalten über AJAX durch Modul A nur die Funktion "Anhängen" von Drupal.behaviours.a aufgerufen wird und nicht die Funktion "Anhängen" von Drupal.behaviours.b . Beide Funktionen werden beim Laden einer Seite aufgerufen, jedoch nicht beim anschließenden Laden von AJAX-Inhalten.
// 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');
}
}
Wie kann ich die Funktion "Anhängen" von Drupal.behaviours.b jedes Mal ausführen lassen, wenn ein Modul neuen Inhalt lädt?
7
javascript
sbrattla
quelle
quelle
Drupal.attachBehaviors();
, den Ajax Success Callback zu ergänzen?$('body').ajaxSuccess(Drupal.attachBehaviors);
wird dies wahrscheinlich funktionierenAntworten:
Aus den Kommentaren in
misc/drupal.js
geht hervor, wie es funktionieren soll:quelle
Versuchen Sie, dies in Drupal.behavior.b hinzuzufügen:
quelle