it-swarm.com.de

Drupals Anhängeverhalten: Auf alle neu geladenen Inhalte reagieren?

Ich habe zwei verschiedene Module, die in vielerlei Hinsicht zusammenarbeiten. Eines der Dinge, an denen sie zusammenarbeiten, ist, dass Modul A Inhalte über AJAX lädt und Modul B Ereignis-Listener an die geladenen Inhalte anhängen muss.

Es scheint jedoch, dass beim Laden von Inhalten über AJAX durch Modul A) nur die Funktion 'attach' von Drupal.behaviours.a aufgerufen wird und nicht die Funktion ' Attach 'Funktion von Drupal.behaviours.b. Beide Funktionen werden beim Laden der Seite aufgerufen, jedoch nicht beim anschließenden Laden von Inhalten AJAX Content).

// 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, wenn ein Modul neuen Inhalt lädt?

12
sbrattla

Dies geht aus den Kommentaren in misc/drupal.js, erklärt, wie es funktionieren soll:

  • Drupal.attachBehaviors wird unten zum jQuery ready-Ereignis hinzugefügt und so weiter
  • läuft beim ersten Laden der Seite. Entwickler, die AHAH/Ajax in ihrem
  • lösungen sollten diese Funktion auch aufrufen, nachdem ein neuer Seiteninhalt erstellt wurde
  • geladen, ein zu verarbeitendes Element einspeisend, um alle anzubringen
  • verhalten zu den neuen Inhalten.
4
lazysoundsystem

Versuchen Sie dies in Drupal.behavior.b hinzuzufügen:

Drupal.attachBehaviors($(this));
2
Nanak