Score:-2

ฉันไม่สามารถเรียกใช้ฟังก์ชันในไฟล์ JavaScript อื่นได้

ธง bi

ฉันมีไฟล์ JavaScript สองไฟล์ในธีมที่กำหนดเอง ไฟล์หนึ่งมีฟังก์ชันที่ต้องใช้กับอีกไฟล์หนึ่ง สิ่งที่ฉันมีด้านล่างไม่ทำงาน นี่คือข้อผิดพลาดที่ฉันได้รับ

Uncaught ReferenceError: ไม่ได้กำหนดการทดสอบ

jQuery จะถูกใช้กับทั้งสองไฟล์

ไฟล์ 1.js

/**
 * @ไฟล์
 * พฤติกรรม UI
 */

(ฟังก์ชัน ($, Drupal) {

 'ใช้อย่างเข้มงวด';

  $(เอกสาร).พร้อม(ฟังก์ชั่น () {
    การทดสอบฟังก์ชัน (){
     console.log('สวัสดี'):
    }
  });

})(jQuery, Drupal);

ไฟล์ 2.js

/**
 * @ไฟล์
 * พฤติกรรม UI
 */

(ฟังก์ชัน ($, Drupal) {

  'ใช้อย่างเข้มงวด';

  $(เอกสาร).พร้อม(ฟังก์ชั่น () {
     ทดสอบ();
  });

})(jQuery, Drupal);

customtheme.libraries.yml

สคริปต์:
  จส:
    js/file1.js: {}
    js/file2.js: {}

customtheme.info.yml

ห้องสมุด:
 - 'ชุดรูปแบบ/สคริปต์ที่กำหนดเอง'
Score:1
ธง de

นี้เป็นเพราะ ทดสอบ() ถูกห่อหุ้มด้วยฟังก์ชันนิรนาม ทำให้ไม่สามารถใช้งานได้นอกฟังก์ชันนั้น

ฉันจะเพิ่มลงในวัตถุ Drupal:

ไฟล์ 1:

(ฟังก์ชัน ($, Drupal) {
  Drupal.myFunction = ฟังก์ชัน () {
    // ทำอะไรสักอย่าง.
  }
}(jQuery, Drupal));

ไฟล์ 2:

(ฟังก์ชัน ($, Drupal) {
  Drupal.myFunction();
});

นอกจากนี้ยังเป็นหมายเหตุด้านข้าง $(เอกสาร).พร้อม() ไม่ได้ใช้ใน Drupal ใน Drupal Drupal.พฤติกรรม ใช้แทน: https://www.drupal.org/docs/drupal-apis/javascript-api/javascript-api-overview

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา