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

时间:2013-06-11 19:28:00

标签: jquery hash href

在我的页面上,我使用此代码设置了3个标签以及一些CSS

<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>

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

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

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

<script>  

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

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

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

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

我确实有代码跟踪哈希标记,当我从概述,新闻和图库更改时,它可以正常工作。我可以使用返回标签。

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

1 个答案:

答案 0 :(得分:5)

我建议:

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

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

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

参考文献: