Обнаруживать якоря с помощью Jquery? - PullRequest
3 голосов
/ 13 февраля 2011

Я хочу знать, возможно ли, чтобы скрипт обнаружил привязку URL-адреса и загрузил содержимое, специфичное для этой привязки. Например, у меня есть эта строка кода:

<a href="#home"><span id="homeMenu">Home</span></a>

Эта строка кода прослушивает этот код:

$("#homeMenu").click(function () {
    $("#home_content").show("slow");
    $("#accommodations_content").hide("slow");
    });

Как я могу сделать так, чтобы, если пользователь заходит на http://www.myurl.com/home.html#home, он автоматически загружал домашний контент. Это также должно работать для всех других якорей, которые я хотел бы реализовать.

Я хочу этого, потому что прямо сейчас, если пользователь посещает любой из якорей напрямую, не имеет значения, какой якорь, он всегда будет отображать домашнюю страницу. Итак, есть ли способ определить, какой URL-адрес загружен, а затем запустить сценарий для этого?

EDIT

Таким образом, в настоящее время загружаются ТОЛЬКО места (даже когда на #Home)

Текущий код:

 <script type="text/javascript"> 
            $(document).ready(function() {
            document.getElementById("javascriptCheck").style.visibility = 'hidden';
            $("#menu").load("snippets/menu.html");
            $("#locationMenu").load("snippets/locationMenu.html");
            $("#home_content").load("snippets/home_content.html");
            $("#accommodations_content").load("snippets/accommodations.html");
            $("#history").load("snippets/history.html");
            $("#footer").load("snippets/footer.html");

            var hash = window.location.hash;
            if (hash = "#Home") {
                $("#home_content").show("slow");
                $("#accommodations_content").hide("slow");
            }
            if (hash = "#Accommodations") {
                $("#accommodations_content").show("slow");
                $("#home_content").hide("slow");     
            }
            } );
        </script> 

Ответы [ 2 ]

10 голосов
/ 13 февраля 2011

Вы должны проверить хеш-теги при загрузке страницы.

используйте этот код:

var identifier = window.location.hash; //gets everything after the hashtag i.e. #home

if (identifier === "#home") {
     $("#home_content").show("slow");
     $("#accommodations_content").hide("slow");
}
5 голосов
/ 13 февраля 2011

Полагаю, вам нужно что-то вроде этого: плагин jQuery hashchange .Он позволяет вам реагировать на изменения в хэше и загружать, например, другой контент через AJAX - но вы можете делать и другие вещи.Пользователь даже может использовать кнопку назад и вперед браузера, чтобы перейти в предыдущее состояние.

...