Я не думаю, что этот вопрос был задан ранее, по крайней мере, не так, как мне нужно, чтобы он ответил. Я использую функцию JQuery .load. У меня проблема при загрузке только фрагментов страницы.
При использовании чего-то вроде:
$('#content').load('loadTest.html');
Все скрипты на loadTest.html загружаются просто отлично. Тем не менее, при загрузке фрагментов страницы, как это:
$('#content').load('loadTest.html #content');
сценарии удаляются до обновления DOM
Это четко задокументировано в http://api.jquery.com/load/, в котором говорится:
Примечание: При вызове .load () с использованием URL-адреса без суффиксного выражения селектора содержимое передается в .html () до удаления сценариев. Это выполняет блоки скрипта до того, как они будут отброшены. Однако если .load () вызывается с выражением селектора, добавленным к URL-адресу, сценарии удаляются до обновления DOM, поэтому они никогда не выполняются. Пример обоих случаев можно увидеть ниже:
Я понимаю, что могу просто внешне загрузить скрипт, который можно использовать где угодно, но дело в том, что я использую Ajax-систему шириной страницы, где все загружается динамически. Так что мне не очень хочется иметь каждую отдельную функцию javascript, которую я когда-либо напишу (100 на данный момент) во внешних файлах. Тем более, что некоторые из этих функций javascript сделаны из значений, загруженных из базы данных, которые я не могу объяснить в файле .js.
Есть ли обходной путь для сценариев, удаляемых до обновления DOM? Могу ли я каким-то образом загрузить их вручную? Любой крошечный пример будет полезен для меня.