Tengo dos módulos diferentes que, en muchos sentidos, funcionan juntos. Una de las cosas en las que trabajan juntos es que el módulo A carga contenido a través de AJAX, y el módulo B necesita adjuntar oyentes de eventos al contenido cargado.
Sin embargo, parece que cuando el módulo A carga contenido a través de AJAX, solo se invoca la función 'adjuntar' de Drupal.behaviours.a , y no la función 'adjuntar' de Drupal.behaviours.b . Ambas funciones se invocan en la carga de la página, pero no en la carga de contenido AJAX posterior.
// 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');
}
}
¿Cómo hago que la función 'adjuntar' de Drupal.behaviours.b se ejecute cada vez que un módulo carga contenido nuevo?
7
javascript
sbrattla
fuente
fuente
Drupal.attachBehaviors();
a la devolución de llamada de éxito ajax?$('body').ajaxSuccess(Drupal.attachBehaviors);
, probablemente funcionaráRespuestas:
Esto, a partir de los comentarios en
misc/drupal.js
, explica cómo se supone que debe funcionar:fuente
Intente agregar esto en Drupal.behavior.b:
fuente