使用JQuery将哈希标记添加到当前URL

1 hash jquery href

在我的页面上,我使用此代码和一些CSS设置了3个选项卡

<ul class="subnav" id="subnav">
    <li class="active"><a href="#subover">Overview</a></li>
    <li><a href="#subnews">News</a></li>
    <li><a href="#subgallery">Gallery</a></li>
    </ul>
Run Code Online (Sandbox Code Playgroud)

在新闻标签内,我正在使用.load来填充页面arc.php和id = news.

 <div class="subcont" id="subnews">
   <script>
jQuery(document).ready(function ($) {
$('#subnews').append($('<div>').load('arc.php #news'));
});
</script> 
   </div>
Run Code Online (Sandbox Code Playgroud)

在arc.php页面上,我有包含文章链接的新闻说明.单击文章链接时.我希望它加载到subnews div.我正是这样做的.

<script>  

 jQuery(document).ready(function ($) {

$("#subnews").on("click", "a", function (e) { 
    $("#subnews").load($(this).attr("href"));
    e.preventDefault();
});
 });
</script>
Run Code Online (Sandbox Code Playgroud)

现在我的问题......

加载新闻文章时,网址不会更改,因此我无法使用返回到新闻文章列表.

我确实有代码跟踪哈希标签,当我从概述,新闻和图库更改时,它可以工作.我可以使用back返回选项卡.

有没有办法在单击文章时向网址添加哈希标记,以便使用跟踪并能够单击回来?

Dav*_*mas 5

我建议:

$("#subnews").on("click", "a", function (e) {
    var href = $(this).attr('href');
    $("#subnews").load(href);
    window.location.hash = href;
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

但我看不出有任何理由可以使用$(this).attr('href'),而且会亲自使用,而是:

$("#subnews").on("click", "a", function (e) {
    var href = this.href;
    $("#subnews").load(href);
    window.location.hash = href;
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

参考文献: