загрузка в скрипте Glide из-за того, что jquery не распознается

Я пытаюсь создать динамический слайдер с помощью jQuery следующим образом:
(это не полный скрипт, я просто вырезал нужные фрагменты

$("head").append( $("<link rel=\"javascript\" type=\"text/css\">").attr("href", sliderjs) );

$('<script>$("#Glide").glide({ type: "carousel"});</' + 'script>').appendTo(document.body);

Я вижу, что файл slider.js загрузился правильно, но скрипт Glide не распознает его, потому что я загружаю его отдельно. Я подумал, что, возможно, он загружается в неправильном порядке.

Я попытался добавить часть добавления к:

setTimeout(function() {
$('<script>$("#Glide").glide({ type: "carousel"});</' + 'script>').appendTo(document.body);
}, 300);

чтобы дать ему время загрузиться, но это не имеет значения, он все еще не распознает его.
Я добавил их в HTML, и это работает абсолютно нормально, но я не вижу, что я нужно сделать, чтобы заставить это работать в правильном порядке?


person Sjrsmile    schedule 30.11.2017    source источник
comment
Итак, пара вещей. Прежде всего. Если вы никогда не позвоните $().glide, он никогда не активируется. Таким образом, просто включение ссылки в заголовок при загрузке страницы избавит вас от необходимости выполнять эту логику. Во-вторых, вы пытаетесь использовать javascript, чтобы вставить тег скрипта на свою страницу, ..... для выполнения скрипта. Просто выполните скрипт. Вы уже находитесь внутри скрипта на странице. Вам не нужно вставлять его на страницу.   -  person Taplar    schedule 30.11.2017
comment
Это для веб-сайта WordPress, где пользователь может вставить галерею на страницу, и когда страница загружается, он вызывает слайдер jquery только в случае необходимости. Я пытаюсь выяснить, есть ли способ загрузить его динамически и без дополнительной кнопки, которую пользователь может нажать для php.   -  person Sjrsmile    schedule 01.12.2017


Ответы (1)


Итак, поиграв еще немного после комментария Таплара, я понял, что могу просто назвать это:

$.getScript(sliderjs, function() {
  $("#Glide").glide({ type: "carousel"});
});

Где sliderjs — это переменная, содержащая URL-адрес.

person Sjrsmile    schedule 01.12.2017