Чтобы ответить на ваш официальный вопрос, да, я считаю, что этого можно достичь.
Но, чтобы уточнить это, я полагаю, что вы можете попробовать поработать с порядком загрузки внешних сценариев и внешней разметки. Интересная ситуация, с которой мы сталкиваемся, когда имеем дело с такими асинхронными действиями, заключается в том, что они не всегда завершают, загружают или выполняют в том порядке, в котором вы хотели бы, если вы специально не скажете это. jQuery позволяет вам делать это с помощью некоторых обратных вызовов, которые вы можете передать методам getScript
и load
.
Также не должно быть «междоменной» проблемы с файлами javascript в других доменах, хотя при загрузке HTML она, безусловно, существует.
Я не уверен, что это точно решит проблему, с которой вы столкнулись, но, похоже, стоит попробовать. Вы можете убедиться, что разметка загружается до того, как скрипты это сделают:
$(function(){
$("#socialmedia").live('click',function(){
$("#loadhere").load('html-part.html', function() {
// this waits until the "html-part.html" has finished loading...
$.getScript('js-part.js');
});
});
});
Теперь нам также следует спросить о том, как вы собираете свой файл "js-part.js". (Вы показали только то, что хотели, а не то, что создали.) Если это действительно файл JS, вы не можете просто использовать некоторые теги HTML <script>
для загрузки других файлов JS. (Вместо этого вы захотите продолжить вызывать getScript
в этом файле или использовать один из нескольких других подходов для загрузки других ваших JS-вещей, таких как добавление элементов скрипта вручную в заголовок документа или использование другой библиотеки и т. Д ... )
Удачи!