Я не думаю, что этот вопрос задавался раньше, по крайней мере, не так, как мне было нужно. Я использую функцию .load jQuery. У меня проблема при загрузке только фрагментов страницы.Сценарии, разделенные с 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? Могу ли я каким-то образом вручную загрузить их? Любой маленький пример был бы полезен для меня.
Для чего это было бы хорошо? Или наоборот: почему бы вам не написать свою собственную функцию загрузки, которая делает именно то, что вы хотите? – hakre
@hakre Поскольку весь сайт управляется ajax, я не всегда знаю, какие функции javascript необходимо загружать при нажатии ссылки. Я просто не знаю, как вручную поместить скрипты в том, что .load лишился. – Galway