Я загружаю файлы html в div #content, чтобы избежать повторной загрузки полной страницы при нажатии на ссылку. Я делаю это, вызывая следующее в моем index.html:
[...]
<div id="content">
<script type="text/javascript">$("#content").load("home.html");</script>
</div>
Проблема в том, что javascript в моем global.js не будет выполнен, если он связан с одним из html файлов, которые будут загружены в мой #content div.
Чтобы справиться с этим фактом, я просто поместил js связанного html файла прямо в это конкретное, отправив его с помощью команды <script>
, например:
<script type="text/javascript">
$(document).ready(function () {
$(".faq").click(function () {
$(this).find(".faq_answer").toggle();
});
});
</script>
Я совершенно недоволен этим, и поэтому мой вопрос: есть ли способ, по которому я могу вернуть js в мой файл global.js?
Если я правильно понимаю ваш вопрос, вам нужно использовать даже делегирование для назначения обработчиков событий элементам, которые еще не существуют
$(document).on("click",".faq", function (){ ... })
Где document
может быть заменен любым контейнером .faq
который существует во время привязки.
Подробнее см. Раздел "Прямой и делегированный" здесь.
Попробуйте загрузить страницу через ваш global.js, находясь внутри вашей html-страницы. Сохраните скрипт, который сначала загрузит контент. Это должно работать