Аякс хэш в URL - PullRequest
       1

Аякс хэш в URL

1 голос
/ 30 января 2011

Я использую код из этого урока

В URL это странно;Если я нажму на дом, он перейдет к example.tld/home#, но я бы хотел иметь хеш-код на обратной стороне.example.tld/#home.Если бы я перешел на страницу контактов, она отобразилась бы как /home#co… не показывает всего слова.(Контакт).Я бы хотел #contact заменить #home при смене страницы.Кроме того, как я могу попасть на другую страницу при загрузке вместо #home снова?Пример: нажмите на example.tld/#contact, перейдите на страницу #contact.

Также ... Вот код, который я изменил из учебника :

 // Check for hash value in URL  
    var hash = window.location.hash.substr(1);  
    var href = $('nav ul li a').each(function(){  
        var href = $(this).attr('href');  
        if(hash==href.substr(0,href.length-5)){  
            var toLoad = hash+'.html #main-content';  
            $('#content').load(toLoad)  
        }  
    });  

    $('nav ul li a').click(function(){  

    var toLoad = $(this).attr('href')+' #main-content';  
    $('#main-content').hide('fast',loadContent);  
    $('#load').remove();  
    $('#wrapper').append('<span id="load">LOADING...</span>');  
    $('#load').fadeIn('normal');  
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);  
    function loadContent() {  
        $('#main-content').load(toLoad,'',showNewContent())  
    }  
    function showNewContent() {  
        $('#main-content').show('normal',hideLoader());  
    }  
    function hideLoader() {  
        $('#load').fadeOut('normal');  
    }  
    return false;  

    });

Думаешь, мне следует кэшировать некоторые из повторяющихся селекторов?

Также здесь есть HTML:

<div id="main-content" class="home">

… content to be loaded

</div>

Nav:

<nav>
        <ul>
          <li><a href="home">Home</a></li>
          <li><a href="about">About</a></li>
          <li><a href="contact">Contact</a></li>
        </ul>
      </nav>

Я использую htaccess, поэтому мне не нужно включать расширение файла, но если это необходимо, файлы .php

Допустим, я на #home иесли я снова нажму на ссылку #home, она перезагрузит ту же страницу, есть ли способ остановить это, если я уже на этой странице?

1 Ответ

0 голосов
/ 30 января 2011

изменение

window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);  

до

window.location.hash = $(this).attr('href');  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...