Рейтинг:-2

Я не могу вызвать функцию в другом файле JavaScript

флаг bi

У меня есть два файла JavaScript в моей пользовательской теме. В одном файле есть функции, которые необходимо использовать в другом файле. То, что у меня ниже, не работает. Это ошибка, которую я получаю.

Uncaught ReferenceError: тест не определен.

jQuery будет использоваться в обоих файлах.

файл1.js

/**
 * @файл
 * Поведение пользовательского интерфейса
 */

(функция ($, Друпал) {

 'использовать строгий';

  $(документ).готовый(функция () {
    функциональный тест () {
     console.log('привет'):
    }
  });

})(jQuery, Drupal);

файл2.js

/**
 * @файл
 * Поведение пользовательского интерфейса
 */

(функция ($, Друпал) {

  'использовать строгий';

  $(документ).готовый(функция () {
     тестовое задание();
  });

})(jQuery, Drupal);

customtheme.libraries.yml

скрипты:
  js:
    js/file1.js: {}
    js/file2.js: {}

customtheme.info.yml

библиотеки:
 - 'пользовательская тема/скрипты'
Рейтинг:1
флаг de

Это потому что тестовое задание() заключен в анонимную функцию, что делает его недоступным вне этой функции.

Я бы добавил его в объект Drupal:

Файл 1:

(функция($, Друпал) {
  Drupal.myFunction = функция () {
    // Сделай что-нибудь.
  }
}(jQuery, Друпал));

Файл 2:

(функция($, Друпал) {
  Drupal.myFunction();
});

Кроме того, в качестве примечания, $(документ).готов() не используется в Drupal. В друпале Drupal.behaviors вместо этого используется: https://www.drupal.org/docs/drupal-apis/javascript-api/javascript-api-обзор

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.