Не работат JS/jQ-скрипты при импорте HTML
Продолжая данную тему. Импорт HTML по коду ниже всё-таки удалось завести через .load
$(function(){
$("класс или ид дива, куда выгрузится контент").load("ссылка на импортируемый html-файл");
});
Однако появилась другая проблема - ломающиеся после перезагрузки страницы скрипты из импортируемых html-файлов. В первый раз, когда запускаешь страницу, они работают нормально. После обычной перезагрузки (f5) они перестают срабатывать. Но если сделать чистую перезагрузку (ctrl+f5), то скрипты вновь начинают работать до последующей обычной перезагрузки
Ответы (1 шт):
Мне помогли со стороны, но ответ я всё же напишу. Проблема заключалась в том, что сначала должны исполняться скрипты импорта, а уже потом всё остальное. Так как никаких ограничений по времени не стояло, то скрипты импорта могли исполняться позже остального фронтэнда, из-за чего последние не срабатывали и сайт "ломался". Решилось всё это дело путём оборачивания функций в setTimeout() с выставлением времени где-то в 500 мс, дабы скрипты точно выполнились позже импорта. Это также можно провернуть и через callback, но это более заморочисто, как по мне
function name() { //название функции нужно дать обязательно
//сюда вы пишите скрипт, который нужно исполнить
};
setTimeout(function () { //оборачиваем функции в setTimeout()
name1();
name2();
namex();
}, 500); //вместо 500 можете вставить другое число мс