Задать вопрос
@kapai69

History api не работает js код в загруженом контенте, в чем проблема?

Разбираюсь с history api, нашел примерчик на просторах родного интернета
<div class="container">
      <ul class="nav">
          <li><a href="index.html" class="historyAPI">Главная</a></li>
          <li><a href="about.html" class="historyAPI">О нас</a></li>
          <li><a href="contact.html" class="historyAPI">Контакты</a></li>
      </ul>
      <div>
          Нажмите на ссылки выше, чтобы использовать метод <strong>pushState</strong>.   
          <div class="jumbotron" id="contentHolder">
              <h1>Главная!</h1>
              <p>Здесь какой-то текст главной страницы.</p>
          </div>
      </div>
</div>


$('document').ready(function(){
    $('.historyAPI').on('click', function(e){      
        // отменяем стандартное действие при клике
        e.preventDefault();
        // Получаем адрес страницы
        var href = $(this).attr('href');
        // Передаем адрес страницы в функцию
        getContent(href, true);
    });
});

// Добавляем обработчик события popstate, 
// происходящего при нажатии на кнопку назад/вперед в браузере  
window.addEventListener("popstate", function(e) {
    // Передаем текущий URL
    getContent(location.pathname, false);
});

// Функция загрузки контента
function getContent(url, addEntry) {
    $.get(url).done(function(data) {
        // Обновление только текстового содержимого в сером блоке
        $('#contentHolder').html($(data).find("#contentHolder").html());
        // Если был выполнен клик в меню - добавляем запись в стек истории сеанса
        // Если была нажата кнопка назад/вперед, добавлять записи в историю не надо
        if(addEntry == true) {
            // Добавляем запись в историю, используя pushState
            history.pushState(null, null, url); 
        }
    });
}

Код работает, контент загружается, но в контенте который был загружен без перезагрузки не работает js код по отношению к загруженым элементам, если перезагрузить страницу то он работает с удовольствием, в чем может быть проблема?
  • Вопрос задан
  • 2516 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Symphony
@Symphony Куратор тега JavaScript
Не загружайте js код, храните весь js в файле и вызывайте когда требуется
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы