Подключить стороннии скрипты повле выполнения аякс-запроса.
Всем привет.В шаблоне три блока.В зависимости от условий(заданны и передаются с сервера) аяксом подгружается тот или иной див.Например при условии 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); Или просто объединить их в единый скрипт и подгружать единственный |
$.getScript(scr) таким образом загруженный скрипт не кешируется. если скрипт постоянный то может var el = document.createElement('script'); el.src = 'you path src'; document.body.appendChild(el); данный вариант будет кешировать скрипт на клиенте и файл будет взят из кеша |
Часовой пояс GMT +3, время: 01:12. |