Обновить страницу при изменении хэша

Обновить страницу при изменении хэша.

У меня есть простой одностраничный сайт с несколькими "страницами" на нем. Эти страницы находятся в одном широком контейнере, который прокручивается, когда вы его выбираете. Я добавил хэш в URL-адрес, чтобы вы могли напрямую найти конкретные страницы. Это просто устанавливает атрибут style.left, когда он соответствует хешу в инструкции switch.

Проблема заключается в том, что когда я изменяю значение хэша в URL-адресе. Например, изменив его из Home.html # Web в Home.html # Фото. При этом страница не перезагружается, поэтому функция установки, которую я создал, которая проверяет хэш, не вызывается, а страница остается там, где она есть.

Любые идеи для способа перезагрузки страницы? Или лучшее решение?

Спасибо, Andy

Ответы

Ответ 1

Не перезагружайте страницу. Вместо этого настройте обработчик событий onhashchange и отредактируйте левое значение оттуда:

window.onhashchange = function() {
    // do stuff
}

В противном случае, зачем использовать хеш-ссылки вместо обычных ссылок? В любом случае, если вы действительно хотите перезагрузить, просто поместите window.location.reload() внутри обработчика onhashchange...

Ответ 2

У меня была функция JQuery, запущенная на $('body'). on ('click', '.subcategory-link', function() {}); который обнаружил, что в моем случае был добавлен хэш, добавленный к URL-адресу, поэтому я сохранил эту функцию одинаково, а затем просто использовал перезагрузку при каждом изменении хэша: ниже, я пишу код PLS, попробуйте этот, который он wrok от меня очарования.

       $(document).ready(function() {    
            $('body').on('click', '.subcategory-link', function () {        var data = $(this).attr('href');
           alert($(this).attr('href'));
           window.location.reload();
           });

});