1
我使用的代码来自this tutorial在url中的Ajax哈希
在URL中,它很奇怪;如果我点击回家,它会转到example.tld/home#
,但我希望在后面加上散列。 example.tld/#home
。如果我要进入联系页面,它将显示为/home#co
...不显示整个单词。 (联系)。当我改变页面时,我想#contact
替换#home
。另外,我怎样才能在不同的页面上加载而不是#home
?例如:点击example.tld/#contact
,进入#contact
页面。
而且......这里是代码我从tutorial修改:
// 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;
});
觉得我应该CACH一些正在重复选择的?
而且这里是HTML:
<div id="main-content" class="home">
… content to be loaded
</div>
导航:
<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
再次链接,它会重新加载相同的页面,有没有什么办法可以阻止这个,如果我已经在那个网页上?