У меня есть два разных модуля, которые во многом работают вместе. Одна из вещей, над которыми они работают вместе, заключается в том, что модуль A загружает контент через AJAX, а модуль B должен подключать прослушиватели событий к загруженному контенту.
Однако кажется, что когда контент загружается через AJAX модулем A, вызывается только функция «attach» в Drupal.behaviours.a , а не функция «attach» в Drupal.behaviours.b . Обе функции вызываются при загрузке страницы, но не при последующей загрузке содержимого 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');
}
}
Как сделать так, чтобы функция присоединения в Drupal.behaviours.b запускалась каждый раз, когда какой-либо модуль загружает новый контент?
7
javascript
sbrattla
источник
источник
Drupal.attachBehaviors();
к успешному обратному вызову ajax?$('body').ajaxSuccess(Drupal.attachBehaviors);
, вероятно, сработалоОтветы:
Это, из комментариев
misc/drupal.js
, объясняет, как это должно работать:источник
Попробуйте добавить это в Drupal.behavior.b:
источник