Saya punya dua modul berbeda yang dalam banyak hal bekerja bersama. Salah satu hal yang mereka kerjakan bersama adalah modul A memuat konten melalui AJAX, dan modul B perlu melampirkan pendengar acara ke konten yang dimuat.
Namun, tampak bahwa ketika konten dimuat melalui AJAX oleh modul A, hanya fungsi 'attach' dari Drupal.behaviours.a dipanggil, dan bukan fungsi 'attach' dari Drupal.behaviours.b . Kedua fungsi dipanggil pada pemuatan halaman, tetapi tidak pada pemuatan konten AJAX berikutnya.
// 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');
}
}
Bagaimana cara saya membuat fungsi 'attach' dari Drupal.behaviours.b dijalankan setiap kali modul memuat konten baru?
7
javascript
sbrattla
sumber
sumber
Drupal.attachBehaviors();
callback keberhasilan ajax?$('body').ajaxSuccess(Drupal.attachBehaviors);
mungkin akan berhasilJawaban:
Ini, dari komentar di
misc/drupal.js
, menjelaskan cara kerjanya:sumber
Coba tambahkan ini di Drupal.behavior.b:
sumber