@Romario21

Динамическое добавление ссылок на js скрипты в заголовок?

Всем привет, помогите пжлста, получаю ошибку : Uncaught TypeError: $(...).suggestions is not a function
Задача динамически подгрузить jQuery плагин, от сервиса https://dadata.ru/

<html>
<head>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
    <input id="name" type="text" size="100" />
   
 
    <script type="text/javascript">
    $("head").append('<link href="https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/css/suggestions.min.css" type="text/css" rel="stylesheet" />');
    $("head").append('<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/js/jquery.suggestions.min.js">');
    $("#name").suggestions({
        token: "bdb95d17661d53fedb611214bb3970fdad73a45a",
        type: "NAME",
        count: 5,
        /* Вызывается, когда пользователь выбирает одну из подсказок */
        onSelect: function(suggestion) {
            console.log(suggestion);
        }
    });
    </script>
</body>


</html>


Вот так работает:
<input id="address" name="address" type="text" size="100"/>
<link href="https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/css/suggestions.min.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<!--[if lt IE 10]>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>
<![endif]-->
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/js/jquery.suggestions.min.js"></script>
<script type="text/javascript">
    $("#address").suggestions({
        token: "bdb95d17661d53fedb611214bb3970fdad73a45a",
        type: "ADDRESS",
        count: 5,
        /* Вызывается, когда пользователь выбирает одну из подсказок */
        onSelect: function(suggestion) {
            console.log(suggestion);
        }
    });
</script>
  • Вопрос задан
  • 993 просмотра
Решения вопроса 2
pavelkarinin
@pavelkarinin
Full Stack Web Developer
Вы используете suggestions до того как его загрузили, поэтому получаете "suggestions is not a function"
Ответ написан
@alexalexes
Хватит и нативной составляющей, чтобы в документ добавить любой head.
А вообще, смотрите скрипты счетчиков Яндекс или Гугл -метрики, там есть более компактные трюки с модификацией head.
(function()
{
  var src = 'https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/css/suggestions.min.css';
  var link = document.createElement('link');
  link.setAttribute('src', src);
  link.setAttribute('type', 'text/css');
  link.setAttribute('rel', 'stylesheet');
 document.head.appendChild(link);

  src = 'https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/js/jquery.suggestions.min.js';
  var scrt = document.createElement('script');
   scrt.setAttribute('src', src);
  document.head.appendChild(scrt);
}
)();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы