Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery url中的Ajax哈希_Jquery_Html_Ajax - Fatal编程技术网

Jquery url中的Ajax哈希

Jquery url中的Ajax哈希,jquery,html,ajax,Jquery,Html,Ajax,我使用的代码来自 在URL中,这很奇怪;如果我要单击home,它将转到example.tld/home#,但我希望后面有散列示例.tld/#home。如果我转到联系人页面,它将显示为/home\co…不显示整个单词。(联系)。当我更改页面时,我希望#联系替换#主页。另外,我如何在加载时登录到不同的页面,而不是再次登录到#home?示例:点击Example.tld/#contact,进入#contact页面 另外…以下是我从中修改的代码: //检查URL中的哈希值 var hash=window.

我使用的代码来自

在URL中,这很奇怪;如果我要单击home,它将转到
example.tld/home#
,但我希望后面有散列<代码>示例.tld/#home。如果我转到联系人页面,它将显示为
/home\co
…不显示整个单词。(联系)。当我更改页面时,我希望
#联系
替换
#主页
。另外,我如何在加载时登录到不同的页面,而不是再次登录到
#home
?示例:点击
Example.tld/#contact
,进入
#contact
页面

另外…以下是我从中修改的代码:

//检查URL中的哈希值
var hash=window.location.hash.substr(1);
var href=$('nav ul li a')。每个(函数(){
var href=$(this.attr('href');
如果(hash==href.substr(0,href.length-5)){
var toLoad=hash+'.html#main content';
$(“#内容”).load(toLoad)
}  
});  
$('nav ul li a')。单击(函数(){
var toLoad=$(this.attr('href')+'#main content';
$(“#主内容”).hide('fast',loadContent);
$(“#加载”).remove();
$(“#包装器”).append('LOADING…');
$('加载').fadeIn('正常');
window.location.hash=$(this.attr('href').substr(0,$(this.attr('href').length-5);
函数loadContent(){
$(“#主要内容”).load(toLoad,”,showNewContent())
}  
函数showNewContent(){
$(“#主要内容”).show('normal',hideLoader());
}  
函数hideLoader(){
$('加载').fadeOut('正常');
}  
返回false;
});
我想我应该取消一些重复的选择器吗

这里还有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>

…要加载的内容
导航:

<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
链接,它将重新加载同一页面,如果我已经在该页面上,有没有办法停止此操作?

更改

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