Просмотр полной версии : Подключить стороннии скрипты повле выполнения аякс-запроса.
Всем привет.В шаблоне три блока.В зависимости от условий(заданны и передаются с сервера) аяксом подгружается тот или иной див.Например при условии if(album = 1) подгружается третий блок
$.post(url)
.done(function( data ) {
$('#cont').html(data);
}
При этом нужно в этом блоке подключить js файл.Правильно ли использовать $.getScript("/js/script.js"); и в какое место его правильно будет прописать?
Сделал так
$(document).ready(function() {
var scr = "/components/photos/js/jquery.galleriffic.js";
var scr2 = "/components/photos/js/board.core.js";
$('.phot_txt').on('click',function (e) {
e.preventDefault()
var id = $(this).parents('.photo_container').attr('id');
var url = $('#'+id+' > a').attr('href');
getContent(url,scr, scr2, true);
});
});
window.addEventListener("popstate", function(e) {
getContent(location.pathname, false);
});
function getContent(url,scr, scr2, addEntry) {
$.post(url)
.done(function( data ) {
$.getScript(scr);
$.getScript(scr2);
$('#cont').html(data);
if(addEntry == true) {
history.pushState(null, null, url);
}
});
}
Но как то криво работает.Нет-нет, да зависнет или криво сработает.
может скрипты надо грузить после html
$('#cont').html(data);
$.getScript(scr);
$.getScript(scr2);
ureech, history.pushState успешно и без сбоев работает после window.onload
При $(document).ready(function() { - может подглючивать
Несколько скриптов лучше подгружать с интервалом(посколь при ассинхронке, второй может загрузиться ранее первого
23 $.getScript(scr);
24 setTimeout(function() { $.getScript(scr2);},400);
Или просто объединить их в единый скрипт и подгружать единственный
Vlasenko Fedor
29.06.2016, 14:05
$.getScript(scr)
таким образом загруженный скрипт не кешируется.
если скрипт постоянный то может
var el = document.createElement('script');
el.src = 'you path src';
document.body.appendChild(el);
данный вариант будет кешировать скрипт на клиенте и файл будет взят из кеша
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot