Имеется функция, которая зависит от внешнего скрипта, скрипт используется редко, поэтому подгружаю его по мере необходимости.
По порядку:
1. Есть функция
suggestions, она зависит от внешнего скрипта jquery.suggestions.min.js
2. Внешний скрипт зависит от jQuery
Как дождаться загрузки внешнего скрипта, перед выполнением функции?
Сейчас код выглядит так:
contactFormScripts();
/* Проверяем, что загружена jQuery, иначе ждем */
function defer(method) {
if (window.jQuery) { method(); }
else { setTimeout(function() { defer(method) }, 50); }
}
function contactFormScripts() {
// Подключаем jQuery, если она еще не подключена
if(!window.jQuery){
let script = document.createElement('script');
script.type = "text/javascript";
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js';
document.getElementsByTagName('body')[0].append(script);
}
// Подключаем внешний скрипт, он зависит от jQuery
defer(function() {
let script = document.createElement('script');
script.type = "text/javascript";
script.src = 'https://cdn.jsdelivr.net/npm/suggestions-jquery@20.2.2/dist/js/jquery.suggestions.min.js';
document.getElementsByTagName('body')[0].append(script);
contactFormScriptsInit();
});
}
/* Функция, которая зависит от внешнего скрипта */
function contactFormScriptsInit() {
$("#city").suggestions({
********************************
});
}