JQuery Функция: ошибка ссылки при вызове другой функции JQ - PullRequest
0 голосов
/ 13 февраля 2020

Вечер всех,

У меня небольшая проблема - похоже, JS Проблема загрузки функции. В основном я получаю ReferenceError: reOrderMapLayers не определено сообщение, когда я вызываю функцию из одного файла JS в другой.

Я запускаю OpenLayers после установки из NPM ( OpenLayers-семинар). Он поставляется со всем необходимым для создания приложений OpenLayers и включает в себя несколько пакетов. json файлов, которые имеют дело с загрузкой необходимого индекса. html, main. js файлов.

Что я сделал, так это оставить основной файл. js исключительно связанным с загрузкой / управлением слоями OpenLayers и соответствующими функциями. Я установил еще один JS файл в той же папке, который называется instance. js, который обрабатывает перетаскивание списка.

Файл index. html загружает файлы JS в следующем порядке:

  1. interface. js
  2. jquery -3.4.1 . js
  3. main. js

Main. js всегда находится в конце загрузки - похоже, он загружает файлы JS из html документ первым.

Но, когда я пытаюсь вызвать функцию, созданную мной в главном файле. js после функции события драже (в интерфейсе. js), я получаю эту справочную ошибку. По сути, он не может найти функцию при запуске внутри интерфейса. js ...

Что я пробовал:

  1. Переупорядочить файлы JS так интерфейс. js импортируется в основной скрипт. js. Сгенерировано загружает больше ошибок для функций события перетаскивания
  2. Переместите все функции JS из интерфейса. js в главное. js и удалите интерфейс. js Файл: генерирует то же событие перетаскивания ошибки.
  3. Я попытался экспортировать соответствующие основные функции. js функции в интерфейс. js: не повезло, та же ошибка ...
  4. Я попытался сослаться на главную Файл js в документе html: тоже не повезло, так как он ошибается в функциях события перетаскивания.

Это правильная боль ... Кажется, я не могу понять, почему он жалуется ... все файлы JS загружаются, прежде чем я сделаю перестановку списков.

Вот моя функция драгендинга (из интерфейса. js), которая вызывает функцию в main . js:

function dragEnd() {
    selected = null;
    t_layerOrder = [];
    var layerOrder = $("#layersort li");
    layerOrder.each(function () {

        t_layerOrder.push(($(this).children().first().attr("name")));
    });

   console.log(reOrderMapLayers(t_layerOrder));

}

И в основном файле. js у меня есть это:

function reOrderMapLayers(i_layerOrder)
{
  console.log(i_layerOrder);
}

Буквально все, что я делаю, пытается передать переупорядоченный список в виде массива для функции в main. js, поэтому я могу изменить порядок слоев карты.

Я хочу попробовать разделить функциональность JS на основе OpenLayer, GUI и, в конечном итоге, API, так что это не все в одном большом файле.

Я надеюсь, что это глупо просто, но это первый экземпляр приложения, я пытаюсь вызвать функции из других JS файлов ...

Cheers, B

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...