jQuery getScript() + load() загруженный контент не работает
У меня есть документ с пятью кнопками. Под этим рядом кнопок я создаю заполнитель div
, Когда я нажимаю на кнопку, я использую load()
загрузить в заполнитель div
с другой страницы (каждая кнопка загружает кусок HTML в заполнитель div
).
Хорошо, моя проблема в том, что фрагменты, которые я загружаю в заполнитель, являются слайд-шоу (anythingslider). И они не работают, даже если у меня есть другое слайд-шоу на главной странице со всеми соответствующими CSS и JS, уже загруженными.
Насколько я узнал, мне нужно использовать getScript()
но я все еще не понимаю этого. Нужно ли заново загружать соответствующие сценарии?
Заранее благодарю за любую помощь - К
4 ответа
Похоже, вам просто нужно инициализировать ползунок из функции обратного вызова (вызывается после загрузки содержимого). Код будет выглядеть примерно так:
$('div#placeholder1').load('content.html', function() {
// target the loaded div, find the slider and initialize it
$('div#placeholder1').find('ul.slider').anythingSlider({ /* options */ });
});
Похоже, вы загружаете html на свою страницу, но не создаете экземпляр слайдера после этого. Загрузка html с другой страницы не приведет к переносу объектов JS, запущенных на другой странице.
У меня такая же проблема с загруженным контентом через .load()
для всех моих сценариев я использую загруженный контент.
Попытка поместить скрипт.js сверху, снизу и даже на когда-либо загруженный контент без решения.
Как я могу это исправить в целом?
РЕДАКТИРОВАТЬ:
Просто нашел ответ:
$(document).ajaxComplete(function(){
// fire when any Ajax requests complete
})
ССЫЛКА: Запуск сценариев JQuery для загруженного содержимого AJAX
Это помогло мне загрузить "контент, зависящий от jquery", в документ веб-страницы. Лично мне нравится держать вещи в функциях, потому что их легче поддерживать, когда у вас есть другие сценарии. Я создал функцию с именем globalSections, которую можно использовать на любой странице, пока я придерживаюсь следующего шаблона. Внутри функции я создал элемент div с идентификатором "header". Затем я загрузил свой внешний "jquery-зависимый контент" в этот недавно созданный div. Наконец, получите скрипты, необходимые для запуска этого контента.
$.globalSections = function() {
$('#wrapper').prepend('<div id="header"></div>');
$('#header').load('/myfile.html', function() {
$.getScript("js/jquery.scripts.js");
});
}
Затем запустите функцию
$(function() {
$.globalSections();
});
Коротко и просто