HTML & JS Markup - лучший способ возможен?

0

Я загружаю файлы 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?

Теги:

2 ответа

2
Лучший ответ

Если я правильно понимаю ваш вопрос, вам нужно использовать даже делегирование для назначения обработчиков событий элементам, которые еще не существуют

$(document).on("click",".faq", function (){ ... })

Где document может быть заменен любым контейнером .faq который существует во время привязки.

Подробнее см. Раздел "Прямой и делегированный" здесь.

  • 0
    Большое спасибо, что решил проблему. Я не знал делегирования событий раньше, всегда приятно узнать что-то новое!
0

Попробуйте загрузить страницу через ваш global.js, находясь внутри вашей html-страницы. Сохраните скрипт, который сначала загрузит контент. Это должно работать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню