Внутренние ссылки с адресом jQuery - PullRequest
1 голос
/ 22 декабря 2011

Я пытаюсь реализовать прекрасный плагин Address для обработки внутренних ссылок для более симпатичных ссылок и использования кнопки «Назад». Мне удалось заставить его работать, однако я заметил одну вещь: когда он меняет URL-адрес из раздела / # в раздел / # /, если пользователь затем копирует этот URL-адрес и пытается открыть его в новом окне (или отправить другу) он не переносит пользователя в этот раздел на странице. Очевидно, потому что он больше не распознается как якорь.

Как сделать так, чтобы пользователь находился в нужном разделе, когда пользователь перемещается по URL-адресу?

Ниже приведен фрагмент кода, который я использую в соответствии с адресом jQuery:

$('nav a').click(function() { 
    var pageTitle = 'Kevin Dare Foundation | ' + $(this).html(); 
    $.address.value($(this).attr('href').replace(/^#/, ''));
    $.address.title(pageTitle);
});

Также вот ссылка, чтобы увидеть его в действии: http://nickdimatteo.com/kjd

1 Ответ

1 голос
/ 22 декабря 2011

Простейшим способом может быть запуск кода, который вы используете при загрузке документа, если есть document.location.hash:

$('nav a').click(function() { 
    var pageTitle = 'Kevin Dare Foundation | ' + $(this).html(); 
    $.address.value($(this).attr('href').replace(/^#/, ''));
    $.address.title(pageTitle);
});

$(document).ready(function() {
    var hash = document.location.hash.replace(/^#\//, '');
    if(hash) {
        $('nav a[href="#' + hash + '"]').trigger('click');
    }
});
...