проблема области видимости JavaScript с $ .getScript

0

У меня есть следующий код, который загружает некоторый javascript, а затем вызывает метод из загруженного javascript:

var knackCustomApiLocation = " https://c9.io/xxx/xxx/xx/js/xx.js ";

  $.getScript(knackCustomApiLocation).done(function( script, textStatus ) {
    alert($.fn.jquery);
createRecords(context);

  })

Версия печатает отлично для первого предупреждения, но я также пытаюсь напечатать версию в методе createRecords:

function createRecords(context){
   alert($.fn.jquery);
   createNewQuotationsForEachUnderwriter(context);
}

Я получаю: 'Uncaught TypeError: Не могу прочитать свойство' fn 'undefined'

поэтому явно jquery не входит в объем загружаемого скрипта, но не уверен, как его исправить, так что вызываемый javascript действительно имеет доступ к jquery и относится ли это к вопросам перекрестного домена или нет.

Спасибо,

отметка

  • 0
    Какой метод вы используете, чтобы включить JQuery? Какой самый верхний блок области видимости перед глобальным, который содержит метод $.getScript ? Что дает alert(window.$.fn.jquery) ? Это не междоменная проблема, вы можете удалить ее из заголовка / вопроса.
  • 0
    JQuery обычно глобальный. Что произойдет, если вы сделаете alert(jQuery.fn.jquery); , Если это проблема области действия, вам нужно будет предоставить немного больше информации, чем пара небольших фрагментов кода.
Показать ещё 7 комментариев
Теги:

1 ответ

0
Лучший ответ

Спасибо всем за помощь, это было именно то, что мне нужно.

Да, похоже, что с учетом среды, в которой я работаю, jquery не был определен на глобальном уровне. Как только я определил jquery как глобальную переменную, все сработало.

   window.$ = $;

Не уверен, что это подход наилучшей практики, однако предложения приветствуются!

  • 0
    Единственным недостатком является то, что он может перезаписать все, что в данный момент использует window.$ . Не много вы могли бы сделать с этим все же.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню